poj3259 bellman—ford
来源:互联网 发布:珠海网络教育报名 编辑:程序博客网 时间:2024/05/23 15:48
卡在奇怪的地方一晚上!!!
思路不难,就是最短路,不过虫洞是正权值的双向通路,过虫洞是负权值的单向通道。
松弛完再判断是否有负权环
#include<stdio.h>#define INF 999999999int main(){ int dis[5000],n,m,c,s,k,e,t,u[6000],v[6000],w[6000];//没错,卡在这里,5000WA一晚上!!!! scanf("%d",&k); while(k--) { scanf("%d %d %d",&n,&m,&c); int sum=0; for(int i=1;i<=m;i++) //正常 { scanf("%d %d %d",&s,&e,&t); u[sum]=v[sum+1]=s; v[sum]=u[sum+1]=e; w[sum++]=t; w[sum++]=t; } for(int i=1;i<=c;i++) //虫洞 { scanf("%d %d %d",&s,&e,&t); u[sum]=s; v[sum]=e; w[sum++]=-t; } bool flage=1; for(int i=0;i<4000;i++) dis[i]=INF; for(int i=1;i<=n-1;i++) //bellman_ford { flage=0; for(int j=0;j<sum;j++) { if(dis[v[j]]>dis[u[j]]+w[j]) dis[v[j]]=dis[u[j]]+w[j],flage=1; } if(flage==0) break; } flage=0; for(int i=0;i<sum;i++) //判负权环 { if(dis[v[i]]>dis[u[i]]+w[i]) {flage=1; break;} } if(flage) printf("YES\n"); else printf("NO\n"); } return 0;}
0 0
- poj3259 bellman—ford
- POJ3259—Bellman-Ford算法实现
- poj3259 Bellman-Ford
- [水]poj3259 (Bellman-ford)
- POJ3259《Wormholes》方法:Bellman-ford
- POJ3259 Bellman-Ford算法 求负环
- poj3259 Wormholes (Bellman-Ford算法)
- POJ3259--Wormholes--Bellman-Ford算法经典题
- POJ3259 Wormholes(Bellman-ford 负环)
- POJ3259 Wormholes (Bellman-Ford最短路径算法)
- POJ3259 农场与虫洞 图论(Bellman-Ford求负环)
- POJ3259(Wormholes)(Bellman-Ford判断负权图 )
- Bellman——ford
- POJ1860—Bellman-Ford算法
- Arbitrage--(Bellman—Ford)
- Bellman-Ford
- bellman-ford
- Bellman-Ford
- NeHe OpenGL Lesson 9
- Android studio关联源码
- 天天ASP开发网完成中国仡佬族文化研究会网站建设
- oracle中一张表对应使用的段里的存储空间碎片的整理
- 在Android App开发中实现任意Java方法的拦截
- poj3259 bellman—ford
- 求矩阵的外围元素之和,主对角线元素之和以及副对角线元素之和
- KeyChain的用途
- Eclipse修改tomcat输出路径配置
- 链表的中间结点
- 字符大小写的转换
- 命运女神不在天上
- 一段有意思的代码
- guice使用初体验