[kuangbin带你飞]专题四 最短路练习 -F
来源:互联网 发布:怎么安装oracle数据库 编辑:程序博客网 时间:2024/06/02 13:00
http://poj.org/problem?id=3259
题意:
有的边是负数,问从一点出发能不能用小于0的时间回去
tip:
路是双向,虫洞单向,其他模板。。。要气死了。。。。双向着了1h错误
#include <cstdio>#include <iostream>#include <cstring>#include <queue>using namespace std;queue<int>q;const int maxm = 2600;const int maxn = 600;bool inq[maxn*2];int n,m,w;int head[maxn*2],tot,dis[maxn*2],num[maxn*2];struct node{ int v,t,next;}edges[maxm*50];void add(int u,int v,int t){ edges[tot].v = v;edges[tot].t = t;edges[tot].next = head[u];head[u] = tot++;}void init(){ tot = 0; while(!q.empty()) q.pop(); memset(head,-1,sizeof(head)); memset(inq,false,sizeof(inq)); memset(num,0,sizeof(num)); scanf("%d%d%d",&n,&m,&w); for(int i = 1 ; i <= n ; i++) dis[i] = 1<<30; for(int i = 0; i < m ; i++){ int u,v,t; scanf("%d%d%d",&u,&v,&t); add(u,v,t); add(v,u,t); } for(int i = 0 ; i < w ; i++){ int u,v,t; scanf("%d%d%d",&u,&v,&t); add(u,v,-t); }}bool spfa(){ q.push(1); dis[1] =0; inq[1] = true; num[1]++; while(!q.empty()){ int tmp = q.front(); q.pop(); for(int k = head[tmp];k!=-1;k = edges[k].next){ if(dis[edges[k].v] > dis[tmp]+edges[k].t){ dis[edges[k].v] = dis[tmp]+edges[k].t; if(dis[1] < 0) return true; if(!inq[edges[k].v]){ inq[edges[k].v]=true; q.push(edges[k].v); num[edges[k].v]++; if(num[edges[k].v] > n-1) return true; } } } inq[tmp] = false; } if(dis[1] < 0 ) return true; return false;}int main(){ int T; scanf("%d",&T); while(T--){ init(); if(spfa()) printf("YES\n"); else printf("NO\n"); }}
0 0
- [kuangbin带你飞]专题四 最短路练习 -F
- [kuangbin带你飞]专题四 最短路练习 F POJ 3259
- [kuangbin带你飞]专题四 最短路练习
- [kuangbin带你飞]专题四 最短路练习
- [kuangbin带你飞]专题四 最短路练习 A
- [kuangbin带你飞]专题四 最短路练习 B
- [kuangbin带你飞]专题四 最短路练习 C
- [kuangbin带你飞]专题四 最短路练习D
- [kuangbin带你飞]专题四 最短路练习-E
- [kuangbin带你飞]专题四 最短路练习-G
- [kuangbin带你飞]专题四 最短路练习 MN
- [kuangbin带你飞]专题四 最短路练习 P
- [kuangbin带你飞]专题四 最短路练习 R
- [kuangbin带你飞]专题四 最短路练习 A
- [kuangbin带你飞]专题四 最短路练习 B
- [kuangbin带你飞]专题四 最短路练习 -A - Til the Cows Come Home
- [kuangbin带你飞]专题四 最短路练习 A POJ 2387
- [kuangbin带你飞]专题四 最短路练习 B POJ 2253
- Hibernate中对于主键自增策略的Annotation
- 你必须收藏的 Github 技巧
- VS2013下静态链接库(lib)和动态链接库(dll)的生成与使用
- 心蓝12306订票助手-自己动手抢火车票
- Android中的引用类型(强引用,弱引用,软引用,虚引用)
- [kuangbin带你飞]专题四 最短路练习 -F
- NodeJS简要教程
- 高德地图——搜索
- 让京东的密码问题从此不再重现(NET篇)
- 响应式页面制作总结
- mac电脑如何抢火车票
- yii2图片上传
- spring 常用注解
- 深入理解 GRE tunnel