系统性训练,励志刷完挑战程序设计竞赛-代码整理68~103【初级篇】

本文主要是介绍系统性训练,励志刷完挑战程序设计竞赛-代码整理68~103【初级篇】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2014年9月6日,图的方面,我不太懂。就慢慢学吧

/*warshall-floyd
d[i][j]?????i->j??????? 
*/ 
#include<iostream>
using namespace std;
int  V;
const int MAXN=1<<10;
int d[MAXN][MAXN];
void warshall_floyd(){for(int k=0;k<V;k++)for(int i=0;i<V;i++)for(int j=0;j<V;j++){d[i][j]=min(d[i][j],d[i][k]+d[k][j]);}}
int main(){warshall_floyd();return 0;
}


/*
dijkstra算法,选最小点d更新边,即加边操作
适用于无负权的图问题 */
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
const int MAXN=1<<10;
int cost[MAXN][MAXN];//从u->v的权值
int V,d[MAXN],INF=(1<<31)-1; 
bool used[MAXN];
/*
d[v],cost[u][v]来存储 
*/
void dijkstra1(int s){fill(d,d+V,INF);fill(used,used+V,false);d[0]=0;while(true){int v=-1;//选择一个没有使用的最小值的点 for(int u=0;u<V;u++){if(!used[u] &&(v==-1 || d[u] <d[v])) v=u;		}	if(v==-1) break;  //未选择出来 used[v]=true;//更新所有的点的最小距离   更新操作太多,浪费时间 for(int u=0;u<V;u++)d[u]=min(d[u],d[v]+cost[v][u]);}	
}/*
采用邻接表+堆[查找最小值],复杂度ElogV */struct edge{
int to,cost;	
};vector<edge> G[MAXN];
typedef pair<int ,int> P; // first 代表最短距离,second代表顶点编号 void dijkstra2(int s){priority_queue<P, vector<P>, greater<P> > que;fill(d,d+V,INF);que.push(P(0,s)); //初始化while(!que.empty()){P p= que.top(); que.pop();int v=p.second;   //取出编号 if(d[v]<p.first) continue; //检查与d是否是最小的,确定是否更新d for(int i=0;i<G[v].size();i++){  //更新v的连接边 edge e=G[v][i];if(d[e.to]<d[v]+e.cost){d[e.to]=d[v]+e.cost;que.push(P(d[e.to],e.to));  //将更新后的最小边加入que }}		} }int main(){dijkstra1(0);dijkstra2(0);return 0;	
} 


这篇关于系统性训练,励志刷完挑战程序设计竞赛-代码整理68~103【初级篇】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745347

相关文章

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

poj 1258 Agri-Net(最小生成树模板代码)

感觉用这题来当模板更适合。 题意就是给你邻接矩阵求最小生成树啦。~ prim代码:效率很高。172k...0ms。 #include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

D4代码AC集

贪心问题解决的步骤: (局部贪心能导致全局贪心)    1.确定贪心策略    2.验证贪心策略是否正确 排队接水 #include<bits/stdc++.h>using namespace std;int main(){int w,n,a[32000];cin>>w>>n;for(int i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+n+1);int i=1