POJ 3259Wormholes
来源:互联网 发布:javascript有用吗 编辑:程序博客网 时间:2024/06/03 06:15
题意:名字很高端的题,虫洞,给定两点直接进行跳跃,问能否回到从某点出发之前的时间,也就是说构成一个回路,形成负环即可,所以说能否构成负环就成为这题的解法,也就是判断负环;
#include<iostream>#include<algorithm>#include<vector>#include<map>#include<set>#include<stack>#include<queue>#include<cstring>#include<cstdio>#define INF 0x3f3f3f3fusing namespace std;int vulue[505][505];int dis[505];bool vis[505];int ci[505];int main(){int f;scanf("%d",&f);for(int i=1;i<=f;i++){int n,m,w;memset(vulue,INF,sizeof(vulue));scanf("%d %d %d",&n,&m,&w);int a,b,c;for(int i=1;i<=m;i++){scanf("%d %d %d",&a,&b,&c);if(vulue[a][b]!=INF){vulue[a][b]=min(vulue[a][b],c);vulue[b][a]=min(vulue[b][a],c);}else{vulue[a][b]=c;vulue[b][a]=c;}}for(int i=1;i<=w;i++){scanf("%d %d %d",&a,&b,&c);vulue[a][b]=(-c);}memset(vis,0,sizeof(vis));memset(dis,INF,sizeof(dis));memset(ci,0,sizeof(ci));queue<int>que;que.push(1);dis[1]=0;ci[1]++;vis[1]=1;int flag=0;while(!que.empty()){int u=que.front();que.pop();vis[u]=0;//cout<<u<<endl;for(int j=1;j<=n;j++){if(dis[j]>dis[u]+vulue[u][j]){dis[j]=dis[u]+vulue[u][j];if(vis[j]==0){vis[j]=1;ci[j]++;que.push(j);if(ci[j]>n){flag=1;break;}}}}if(flag==1){break;}}if(flag==1) printf("YES\n");else printf("NO\n");}return 0;}
阅读全文
0 0
- poj 3259 Wormholes //SPFA
- POJ 3259 Wormholes
- poj 3259 Wormholes
- POJ 3259 Wormholes
- POJ 3259 Wormholes
- Poj 3259 Wormholes
- poj 3259 Wormholes
- poj-3259-Wormholes
- POJ-3259-Wormholes
- POJ 3259 Wormholes bellman_ford
- poj 3259 Wormholes
- poj 3259 Wormholes
- POJ 3259 Wormholes
- POJ 3259 Wormholes
- POJ 3259 Wormholes
- poj 3259 Wormholes
- POj 3259 Wormholes
- POJ 3259 Wormholes
- 网页取数据bs4
- MySQL多张表关联查询
- 达夫设备 JavaScript
- C语言的命令行参数
- [leetcode]: 581. Shortest Unsorted Continuous Subarray
- POJ 3259Wormholes
- PAT程序设计考题——甲级1045 (最长公共子序列) C++实现
- 单个工程连接多个数据库的俩种方式
- 关于一个内存泄露的问题
- Binder和AIDL之间的关系
- 大话设计模式——》用java代码实现
- redis windows下的环境搭建
- Mockito InjectMocks字段无法注入其他InjectMocks字段的解决办法
- NODE属性说明