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 |
Re:为何floyd过不了...........In Reply To:为何floyd过不了........... Posted by:xuesu at 2014-02-28 20:49:38 > #include <cstdio> > #include <cstring> > #include <iostream> > using namespace std; > int f,n,m,w; > int d[501][501]; > int main() > { > scanf("%d",&f); > bool ans=false; > while(f--){ > ans=false; > int x,y,temp; > scanf("%d %d %d",&n,&m,&w); > for(int i=0;i<=n;i++){ > for( int j=0;j<=n;j++){ > d[i][j]=1000000; > } > } > while(m--){ > scanf("%d %d %d",&x,&y,&temp); > d[x][y]=min(d[x][y],temp); > d[y][x]=min(d[y][x],temp); > } > while(w--){ > scanf("%d %d %d",&x,&y,&temp); > temp=-temp; > d[x][y]=min(d[x][y],temp); > } > for(int i=0;i<=n;i++){ > d[i][i]=0; > } > for(int i=1;i<=n;i++){ > for(int j=1;j<=n;j++){ > for(int k=1;k<=n;k++){ > d[i][j]=min(d[i][j],d[i][k]+d[k][j]); > } > } > if(d[i][i]<0){ > ans=true; > break; > } > } > if(ans){ > 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