BZOJ 1202 贪心的商人
来源:互联网 发布:lstm python实现 编辑:程序博客网 时间:2024/06/11 00:01
差分约束系统
#include <iostream>#include <cstring>#include <cstdlib>#include <algorithm>#include <vector>#include <queue>#include <cmath>#include <cstdio>using namespace std;const int maxn = 1000 + 10;const int INF = 100000000;int n , m;struct Edge{ int from,to,dist; Edge(int u,int v,int d) : from(u),to(v),dist(d) { }};vector<Edge> edges;vector<int> G[maxn];int d[maxn];int p[maxn];void init(){ for(int i=0;i<=n;i++) G[i].clear(); edges.clear();}void AddEdge(int from,int to,int dist){ edges.push_back(Edge(from,to,dist)); int M = edges.size(); G[from].push_back(M-1);}int inq[maxn];int cnt[maxn];bool SPFA(int s){ queue<int>Q; memset(inq,0,sizeof(inq)); memset(cnt,0,sizeof(cnt)); for(int i=0;i<=n;i++) d[i] = INF; d[s] = 0; inq[s] = 1; Q.push(s); while(!Q.empty()) { int u = Q.front();Q.pop(); inq[u] = 0; for(int i=0;i<G[u].size();i++) { Edge& e = edges[G[u][i]]; if(d[u] < INF && d[e.to] > d[u] + e.dist) { d[e.to] = d[u] + e.dist; p[e.to] = G[u][i]; if(!inq[e.to]) { Q.push(e.to); inq[e.to] = 1; if(++cnt[e.to] > n) return false; } } } } return true;}int main(){ int T; scanf("%d",&T); while(T--){scanf("%d%d",&n,&m);init();int u,v,w;for(int i=1;i<=m;i++){scanf("%d%d%d",&u,&v,&w);AddEdge(u-1,v,w);AddEdge(v,u-1,-w);}if(SPFA(0)) cout<<"true"<<endl;else cout<<"false"<<endl;} return 0;}
0 0
- BZOJ 1202 贪心的商人
- BZOJ 1202 狡猾的商人
- 【BZOJ 1202】 [HNOI2005]狡猾的商人
- BZOJ 1202: [HNOI2005]狡猾的商人
- bzoj 1202 [HNOI2005]狡猾的商人
- 【BZOJ 1202】【HNOI 2005】 狡猾的商人
- BZOJ 1202: [HNOI2005]狡猾的商人
- BZOJ 1202 [HNOI2005]狡猾的商人
- 贪心之商人的诀窍
- 贪心G 商人的诀窍
- BZOJ 1202 [HNOI2005] 狡猾的商人 题解与分析
- BZOJ 1202 HNOI2005 狡猾的商人 并查集
- bzoj 1202 [HNOI2005]狡猾的商人|并查集
- BZOJ-1202 狡猾的商人 并查集+前缀和
- bzoj 1202: [HNOI2005]狡猾的商人 查分约束系统
- bzoj 1202 [HNOI2005]狡猾的商人 两种方法
- 狡猾的商人 bzoj 1202 差分约束系统
- (bzoj 1202: [HNOI2005]狡猾的商人)<并查集>
- 模式之路---设计模式六原则(初篇)
- javafx初学
- HOJ 12847 Dwarf Tower (最短路)
- [学习笔记]Jquery的学习小结
- 进程和线程的一个简单形象的解释
- BZOJ 1202 贪心的商人
- UVa 1585 Score(水)
- 集合框架(泛型方法)
- 数据挖掘算法学习(四)PCA算法
- 非递归枚举排列组合(C++)
- 集合框架(静态方法泛型)
- android.os.NetworkOnMainThreadException,Failed to find provider info for com.android.inputmethod.lat
- 集合框架(泛型接口)
- N元语法模型的数据稀疏问题解决方法之一:Good-Turing平滑