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:求教啊啊啊In Reply To:求教啊啊啊 Posted by:Vectorxj at 2016-02-28 19:49:16 > #include<cstdio> > #include<cstdlib> > #include<vector> > #include<iostream> > #include<cstring> > #define N 505 > using namespace std; > > int f,m,w,n,cnt,head[4*N],dist[N],q[N*10],num[N],map[N][N]; > bool vis[N]; > > bool SPFA(int begin,int end) > { > int h=-1,t=0; > memset(vis,0,sizeof(vis)); > memset(num,0,sizeof(num)); > memset(dist,0x3f,sizeof(dist)); > q[0]=begin;vis[begin]=1;num[begin]++; > dist[begin]=0; > while(h<t) > { > int x=q[++h]; > for(int i=1;i<=n;i++) > { > if(dist[i]>dist[x]+map[x][i]) > { > dist[i]=dist[x]+map[x][i];if(!vis[i])vis[i]=1,q[++t]=i,num[i]++; > } > if(num[i]>n)return true; > }vis[x]=0; > } > return false; > } > > int main() > { > scanf("%d",&f); > while(f--) > { > scanf("%d%d%d",&n,&m,&w); > memset(map,0x3f,sizeof(map)); > for(int i=0;i<m;i++) > { > int x,y,z; > scanf("%d%d%d",&x,&y,&z); > map[x][y]=map[y][x]=min(map[x][y],z); > } > for(int i=0;i<w;i++) > { > int x,y,z; > scanf("%d%d%d",&x,&y,&z); > map[x][y]=min(map[x][y],-z); > } > printf(SPFA(1,2)?"YES\n":"NO\n"); > } > } > 一直WA。。 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator