poj 1364 KING (差分约束系统)
2011-06-12 19:16
477 查看
前两天看了算法导论 这方面的东西 刚刚在网上搜了一道这方面的题 自己就是懒 懒得思考 懒得调试
或许不是经过那次打击自己真的认识不到这一点 独立思考的重要性,不过现在惰性又来了 ,还是要牢骚牢骚
以后不应该这样了,每次wa了之后 就想拿别人的代码对比一下 看错在哪里 没有独自分析问题的能力,到
了实战的时候 WA一次 自己就没辙了....
总之 刚刚还想怎么判断零环 呢 实际上不用判断 因为都是整数 a-b>c 那么肯定有a-b>=c+1 , a-b<c 那么 a-b<=c-1 ;
刚开始想当然...直接把 c+1的值取负 ,以为就是<的情况 结果....
或许不是经过那次打击自己真的认识不到这一点 独立思考的重要性,不过现在惰性又来了 ,还是要牢骚牢骚
以后不应该这样了,每次wa了之后 就想拿别人的代码对比一下 看错在哪里 没有独自分析问题的能力,到
了实战的时候 WA一次 自己就没辙了....
总之 刚刚还想怎么判断零环 呢 实际上不用判断 因为都是整数 a-b>c 那么肯定有a-b>=c+1 , a-b<c 那么 a-b<=c-1 ;
刚开始想当然...直接把 c+1的值取负 ,以为就是<的情况 结果....
#include<string> #include<cstdio> #include<iostream> #include<cstring> using namespace std; int n_node;int n_edge; #define N 104 struct Node { int l,r; int val; }; Node node ; #define INF 999999 int k; string str; int bellman_ford(); int main() { freopen("in.txt","r",stdin); int x,y; while(cin>>n_node) { k=0; if(n_node==0) break; n_node+=1; cin>>n_edge; int tmp; for(int i=0;i<n_edge;i++) { cin>>x>>y>>str>>tmp; node[k].l=x-1; node[k].r=x+y; node[k].val=tmp-1; if(str[0]=='g') { int tt; tt=node[k].l; node[k].l=node[k].r;node[k].r=tt; node[k].val=-tmp-1; } k++; } if(bellman_ford()) cout<<"lamentable kingdom"<<endl; else cout<<"successful conspiracy"<<endl; } } int bellman_ford() { int d ; for(int i=0;i<N;i++) d[i]=INF; d[0]=0; int x,y; int done=0; for(int i=0;i<n_node;i++) { done=0; for(int j=0;j<k;j++) { x=node[j].l; y=node[j].r; if(d[y]>d[x]+node[j].val) { done=1; d[y]=d[x]+node[j].val; } } } if(done==1) return 0; else return 1; }
相关文章推荐
- POJ 1364 King (差分约束系统)
- POJ 1364 King(差分约束系统)
- POJ 1364 King(差分约束系统+bellmanford)
- POJ 1364 King(差分约束系统)
- POJ 1364 King 差分约束系统
- [POJ1364]King(差分约束系统)
- POJ 1364 King (差分约束系统)
- POJ 1364 King [差分约束系统]
- POJ 1364 King(差分约束系统)
- POJ 1364 King 差分约束系统 SPFA
- 【POJ 1364】King(差分约束系统)
- POJ 1364 King ( 差分约束系统 )
- POJ 1364-King(差分约束系统)
- poj 1364 King (差分约束系统)
- POJ 1364 King 差分约束系统
- POJ 1364 King(差分约束系统)
- POJ - 1364 King (差分约束系统)
- POJ 1364-King(差分约束系统)
- poj1364 King
- POJ1364/ZOJ1260 King(差分约束,spfa)