PKU 3259 Wormholes
来源:互联网 发布:java 线程池 消息队列 编辑:程序博客网 时间:2024/06/08 00:12
十分经典的bellman问题,判断负环是否存在,如果存在就可以超越时空了-___-
http://acm.pku.edu.cn/JudgeOnline/problem?id=3259
http://acm.pku.edu.cn/JudgeOnline/problem?id=3259
- #include <iostream>
- using namespace std;
- #define N 2500
- #define inf (1<<25)
- struct eage
- {
- int a,b,len;
- }e[3*N];
- int d[N+1],pre[N+1];
- bool bellman(int s,int n,int t)
- {
- int i,j;bool b;
- for(i=1;i<=n;i++)d[i]=inf;
- d[s]=0;//源设置为0
- for(i=1;i<n;i++)
- {
- b=false;
- for(j=0;j<t;j++)//对于每个集合中元素
- {
- if(d[e[j].b]>d[e[j].a]+e[j].len)d[e[j].b]=d[e[j].a]+e[j].len,b=true;
- }
- if(!b)break;
- }
- for(i=0;i<t;i++)
- {//如果找到了负环
- if(d[e[i].b]>d[e[i].a]+e[i].len)return true;
- }
- return false;
- }
- int main()
- {
- int n,t,i,tt,tmp,x,y,len,l;
- cin>>tt;
- while(tt--)
- {
- cin>>n>>t>>tmp;
- l=0;
- for(i=0;i<t;i++)
- {//注意这里是无向图
- scanf("%d%d%d",&x,&y,&len);
- e[l].a=x;e[l].b=y;e[l].len=len;
- l++;
- e[l].a=y;e[l].b=x;e[l].len=len;
- l++;
- }
- for(i=0;i<tmp;i++)
- {//注意这里是有向图,边权需要*-1
- scanf("%d%d%d",&x,&y,&len);
- len*=-1;
- e[l].a=x;e[l].b=y;e[l].len=len;
- l++;
- }
- if(bellman(0,n,l))
- cout<<"YES"<<endl;
- else
- cout<<"NO"<<endl;
- }
- return 0;
- }
- PKU 3259 Wormholes
- PKU 3259-Wormholes
- pku 3259 Wormholes(bellman-ford)
- pku 3259 Wormholes(SPFA判负环)
- pku 3259 Wormholes (Bellman ford判断负权边)
- PKU 3259 Wormholes 最短路 bellman
- PKU 3259 Wormholes - 判断负权回路 Bellman-Ford
- PKU-#3259 Wormholes(Bellman-Ford+vector+FIFO)
- 3259--Wormholes
- 3259 Wormholes 解题报告
- 3259 Wormholes 之 SPFA
- poj 3259 Wormholes //SPFA
- POJ 3259 Wormholes
- poj 3259 Wormholes
- POJ 3259 Wormholes
- POJ 3259 Wormholes
- Poj 3259 Wormholes
- poj 3259 Wormholes
- APOP协议,NNTP协议及其它
- DataTable的排序、检索、合并
- 判断上传前,判断本机文件(上传的文件)是否存在
- 特殊字符的正则表达式
- Http Module 介绍
- PKU 3259 Wormholes
- java空值检查
- 将自己的代码自动添加版权信息
- java判断文字长度检查
- java检查URL合法性
- JAVA检查Email合法性
- JAVA日期合法性检查
- 用C#实现图片数据库存储与显示
- 奋斗!