Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
你写的。。。。。就是bellman-fordIn Reply To:终于AC了!!!附代码!如果大家能给意见,在下感激不尽! Posted by:xiangrui at 2010-03-20 01:13:57 > 本人很菜,看讨论里说的算法都不太明白...把代码贴出来不是觉得自己算法好,而是希望有人可以告诉我应该怎么用讨论里说的spfa或者bellman-ford算法.谢谢各位的指正!! > > > > #include<iostream> > using namespace std; > #define max_n 9999999 > int d[6000],sp[20000]; > int count,n; > bool flag; > struct edge > { > int l,r,t; > }e[6000]; > bool search(int v) > { > int i,j,k,t=0,temp=-1; > bool jud; > for(i=0;i<v;i++) > d[i]=max_n; > d[1]=0; > for(;;) > { > jud=false; > for(j=0;j<v;j++) > { > if(d[e[j].r]>d[e[j].l]+e[j].t) > { > d[e[j].r]=d[e[j].l]+e[j].t;jud=true; > > } > } > if(d[1]<0) > return true; > if(!jud) > return false; > } > > > > return false; > } > int main() > { > int w,m,f,i,j; > //freopen("d:\\1.txt","r",stdin); > cin >> f; > while(f--) > { > cin >> n >> m >> w;j=0; > for(i=0;i<m;i++) > { > cin >> e[j].l >> e[j].r >> e[j].t;j++; > e[j].l=e[j-1].r;e[j].r=e[j-1].l;e[j].t=e[j-1].t;j++; > } > for(i=0;i<w;i++) > { > cin >> e[j].l >> e[j].r >> e[j].t; > e[j].t=-e[j].t;j++; > } > flag=search(j); > if(flag) > cout << "YES" << endl; > else > cout << "NO" << endl; > } > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator