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还是特殊词吗 题意:科学家, ...
随机推荐
- btfs
以下都是举例说明: A. 使用fdisk命令对/dev/sdb进行分区 B. 先对/dev/sdb5和/dev/sdb6进行格式化, 文件系统为btrfs C. 使用btrfs filesystem ...
- Android 程序结构介绍
创建好Android开发环境后,创建一个Android Project, 截图如下:
- mysql 使用 unix 方式显示日期和时间
1.UNIX中文为时间戳.该方式显示从1970年1月1日开始经过的秒数. 2.函数 UNIX_TIMESTAMP() 返回时间戳格式的时间, FROM_UNIXTIME() 将时间戳格式的时间转换为普 ...
- MySQL查询上个月数据
SELECT * FROM order o WHERE o.payTime BETWEEN DATE_FORMAT(DATE_ADD(NOW(),INTERVAL MONTH),'%Y-%m-01') ...
- [Java][Servlet] Cannot call sendRedirect() after the response has been committed
做一个Login Demo的时候,写了如下代码: protected void doPost(HttpServletRequest request, HttpServletResponse respo ...
- mysql数据库免安装版的配置过程
1,从mysql官方网站下载免安装版本与自己电脑位数相同的mysql版本. 链接:https://www.mysql.com/ 2,将包解压到自定义的目录下 (例:D:\mysql-5.7.23-wi ...
- F12 chrome开发者工具
1.Network详解篇 : https://blog.csdn.net/qq_39208536/article/details/79304148 2.sources: js调试篇 http://b ...
- MySQL之my.cnf配置
####################配置文件开始################### # For advice on how to change settings please see # ht ...
- 【起航计划 010】2015 起航计划 Android APIDemo的魔鬼步伐 09 App->Activity->Redirection 根据shared preferences是否有值决定是否redirect
Redirection示例涉及到三个Acitivity: RedirectEnter, RedirectMain,RedirectGetter. 示例的主Activity为 RedirectEnter ...
- 搭建日志环境并配置显示DDL语句
现在一般用log4j用的比较多,用slf4j用的比较少,所有这里我们就不用 hibernate内置的slf4j了. 用到slf的接口,log4j的实现. 要在hibernate中使用log4j,如图所 ...