| ||||||||||
| 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 | |||||||||
求大神看下,为什么我的BELLMANFORD过不了,实在觉得逻辑上没错误啊#include<iostream>
using namespace std;
long map[1221][1221],d[1200];
int main()
{
int F,N,M,W,i,j,k,l,t,tou,wei,p,find,u,v,pan;
cin>>F;
for (l=0;l<F;l++)
{
cin>>N>>M>>W;
for (k=0;k<M;k++)
{
cin>>i>>j>>t;
map[i][j]=map[j][i]=t;
}
for (k=0;k<W;k++)
{
cin>>i>>j>>t;
map[i][j]=-t;
}
memset(d,214000000,sizeof(d));
d[1]=0;
for (k=1;k<N;k++)
{
pan=0;
for (u=1;u<=N;u++)
for (v=1;v<=N;v++)
if (map[u][v])
if (d[v]>d[u]+map[u][v])
{
d[v]=d[u]+map[u][v];
pan=1;
}
if (pan==0)
break;
}
pan=1;
for (u=1;u<=N;u++)
for (v=1;v<=N;v++)
if (d[v]>d[u]+map[u][v])
{pan=0;break;}
if (pan==1)
find=0;
else find=1;
//}
if (find==1)
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