floyed dij spfa 模板
/*
SPFA模板
*/
const int inf=0x3f3f3f3f;
inline int SPFA(int s){
memset(dis,inf,sizeof(dis));
queue<int > q;
dis[s]=;
q.push(s);
vis[s]=;
while(!q.empty()){
int u=q.front;
q.pop();
vis[u]=;
for(int i=head[u];i;i=edge[i].next ){
int v=edge[i].to ;
if(dis[v]>dis[u]+edge[i].value ){
dis[v]=dis[u]+edge[i].value ;
if(!vis[v]){
vis[v]=;
q.push(v);
}
cntt[v]++;
if(cntt[v]>=n) return ;
}
}
}
return ;
}
/*
dijstra模板 (堆优化)
*/
const int inf=0x3f3f3f3f;
typedef pair<int ,int > p
inline void dijstra(int s){
memset(dis,inf,sizeof(dis))
priority_queue<p,vector<p>,greater<p> > q;
dis[s]=;
q.push(make_pair(,s));//pair类型默认先比较第一项
while(!q.empty()){
int u=q.top().second;
int w=q.top().first;
q.pop();
if(dis[u]!=w) continue;
for(int i=head[u];i;i=edge[i].next ){
int v=edge[i].to ;
if(dis[v]>dis[u]+edge[i].value ){
dis[v]=dis[u]+edge[i].value ;
q.push(make_pair(dis[v],v));
}
}
}
}
/*
floyd模板
*/
inline void floyd(){
for(int k=;k<=n;k++)
for(int i=;i<=n;i++)
for(int j=;j<=n;j++){
dis[i][j]=min(dis[i][k]+dis[k][j],dis[i][j]);
//或者:
if(dis[i][j]>dis[i][k]+dis[k][j])
dis[i][j]=dis[i][k]+dis[k][j];
}
}
floyed dij spfa 模板的更多相关文章
- SPFA模板 Bellmanford优化版
SPFA模板: queue<int>Q; ]; ],sumv[]; *],__next[*],e,w[*],first[],cnts[]; void AddEdge(int U,int V ...
- HDu 2544 最短路【dijkstra & floyed & SPFA 】
最短路 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- spfa模板
通过stl的queue实现的spfa(vector实现邻接表存图) 本模板没有考虑存在两点不连通的情况 如果需要判断则需要用到并查集或者遍历整个邻接表 #include<iostream> ...
- spfa(模板)
spfa作为图论中的常用算法,深受各类出题人和各位OIer的喜爱: so,为了给大众创造福利,宝宝在此奉上spfa大发的思路和模板:以感谢社会, 感谢CCF,感谢CCTV, 感谢我的老师,感谢同学们, ...
- 最短路算法 -- SPFA模板
一.算法步骤 建立一个队列,初始时队列里只有起始点,再建立一个数组记录起始点到所有点的最短路径(该数组的初始值要赋为极大值,该点到它本身的路径赋为0,下面的模板中该数组为dist[]).然后执行松弛操 ...
- hdu-2544-最短路(SPFA模板)
题目链接 题意很清晰,入门级题目,适合各种模板,可用dijkstra, floyd, Bellman-ford, spfa Dijkstra链接 Floyd链接 Bellman-Ford链接 SPFA ...
- spfa模板+讲解
zz http://blog.sina.com.cn/s/blog_6ad20aef0100mc1a.html Spfa算法 (模板源代码) 这是Bellman Ford的改进算法. 算法介绍: ...
- 图论--最短路--SPFA模板(能过题,真没错的模板)
[ACM常用模板合集] #include<iostream> #include<queue> #include<algorithm> #include<set ...
- UVA 558 判定负环,spfa模板题
1.UVA 558 Wormholes 2.总结:第一个spfa,好气的是用next[]数组判定Compilation error,改成nexte[]就过了..难道next还是特殊词吗 题意:科学家, ...
随机推荐
- Linux apache 添加 mod_rewrite模块
apache已安装完毕,手动添加mod_rewrite模块 #find . -name mod_rewrite.c //在apache的源码安装目录中寻找mod_rewrite.c文件 #cd mo ...
- Get和Post区别,EncType提交数据的格式详解——转自他人博客的
1. get是从服务器上获取数据,post是向服务器传送数据. 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过 ...
- angular的多个模块执行 angular里 字符串与对象的互转
1.disable : true ,禁用 2.$timeout 计时器 $interval.cancel(timer); 3.app.run(); 可以不使用控制器就开启数据,但适合$rootsco ...
- CSS3伪类使用方法实例
有时候在网页设计中会涉及到很多看上去很繁琐的设计图,这时候都会很让人头疼,那么这时候伪类就可以来帮助你解决问题了. 下面有一段实例大家可以参考一下: <!DOCTYPE html> < ...
- FRM-40654 Record has been updated
该错误是由于界面上对数据进行了修改后(比如为A),将修改前的数据(B)与数据库中的数据(B)进行配不成功时报错: 首先确认Form界面是否有其他人对数据进行修改: 如果无人修改: 将数据库的数据查询出 ...
- 绘图之Canvas学习
一 Canvas的用法 博客:http://blog.taorenjia.com/?p=237 1.drawCircle(float cx, float cy, float radius, ...
- SpringCloud的学习记录(2)
这一章节主要讲如何搭建eureka-client项目. 在我们生成的Demo项目上右键点击New->Module->spring Initializr, 然后next, 填写Group和A ...
- Cocos2d-x下HTTP网络通讯
引入头文件: #include "cocos-ext.h" 添加下载按钮: CCMenuItemImage *pCloseItem = CCMenuItemImage::creat ...
- Azure SQL的DTU和eDTU到底是个什么鬼
可以从上表上对应于本地数据库的性能采集的指标,可以估算出应该使用什么样级别的AZURE SQL. 当然服务层选择后仍然可以进行更改. 对于自己应用应该用多大规模的DTU,可以进行详细的评估,可以使用下 ...
- Jerry Wang诚邀广大SAP同仁免费加入我的知识星球,共同探讨SAP技术问题
大家知道Jerry Wang有一个微信公众号"汪子熙",2017年12月27日,Jerry的这个公众号发布了第一篇文章.到今天2018年10月底为止,正好十个月. 在这10个月的时 ...