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 |
求大神看看哪错了//poj 3259 #include <iostream> #include <queue> #include "stdio.h" #define inf 1000000000 using namespace std; queue <int> q; int f; int n,m,w; int s,e,t; int map[510][510]; int dis[510]; int v[510]; int cnt[510]; bool spfa() { v[1]=1; cnt[1]++; q.push(1); int temp; dis[1]=0; while(!q.empty()) { temp=q.front(); q.pop(); v[temp]=0; for(int i=1;i<=n;i++) { if(i!=temp&&map[temp][i]<inf&&dis[i]-map[temp][i]>dis[temp]) { dis[i]=dis[temp]+map[temp][i]; if(v[i]==0){ v[i]=1; cnt[i]++; if(cnt[i]>=n)return true; q.push(i); } } } } return false; } int main(){ cin>>f; for(int k=0;k<f;k++) { while(!q.empty()){q.pop();} for(int i=0;i<510;i++) for(int j=0;j<510;j++) {if(i==j)map[i][j]=0; else map[i][j]=inf; } // memset(dis,0,sizeof(dis)); memset(v,0,sizeof(v)); memset(cnt,0,sizeof(cnt)); for(int j=1;j<=n;j++)dis[j]=inf; cin>>n>>m>>w; for(int j=0;j<m;j++) { cin>>s>>e>>t; map[s][e]=t; map[e][s]=t; } for(int j=0;j<w;j++) { cin>>s>>e>>t; map[s][e]=-t; } if(spfa())cout<<"YES"<<endl; else cout<<"NO"<<endl; } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator