2014年1月7日 星期二
[ZJ] d540. 老Z的题
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define inf 999999999
int ma[505][505];
int main(){
int i,j,k,t,n,m,w,x,y,z,flag;
scanf("%d",&t);
while(t--){
scanf("%d%d%d",&n,&m,&w);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j) ma[i][j]=0;
else ma[i][j]=inf;
for(i=0;i<m;i++){
scanf("%d%d%d",&x,&y,&z);
ma[x][y]=min(ma[x][y],z);
ma[y][x]=ma[x][y];
}
for(i=0;i<w;i++){
scanf("%d%d%d",&x,&y,&z);
ma[x][y]=min(ma[x][y],-z);
}
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(ma[i][k]+ma[k][j]<ma[i][j])
ma[i][j]=ma[i][k]+ma[k][j];
flag=0;
for(i=1;i<=n;i++)
if(ma[i][i]<0)
flag=1;
if(flag) puts("YES");
else puts("NO");
}
}
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言