题意木看懂 是可以停在路上 任何地方
水题一枚 以下条件之一满足就可以
有环(并查集判)
重边
自己到自己的边
最长边大于s(用flod改写下)
1 #include <iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<stdlib.h> 6 #include<vector> 7 using namespace std; 8 #define LL long long 9 int m,n,s,f[110]; 10 int w[110][110]; 11 int find(int x) 12 { 13 if(x!=f[x]) 14 f[x] = find(f[x]); 15 return f[x]; 16 } 17 int main() 18 { 19 int i,flag=0,j,k; 20 scanf("%d%d%d",&n,&m,&s); 21 for(i = 1; i <= n ; i++) 22 { 23 f[i] = i; 24 } 25 int maxz = 0; 26 for(i = 1; i <= m ; i++) 27 { 28 int u,v,c; 29 scanf("%d%d%d",&u,&v,&c); 30 maxz = max(maxz,c); 31 if(w[u][v]) 32 flag = 1; 33 if(u==v) 34 flag = 1; 35 w[u][v] = c; 36 w[v][u] = c; 37 int tx = find(u),ty = find(v); 38 if(tx == ty) 39 { 40 flag = 1; 41 } 42 else 43 f[tx] = ty; 44 } 45 if(flag) 46 { 47 printf("YES "); 48 return 0; 49 } 50 51 for(i = 1; i <= n ; i++) 52 for(j = 1; j <= n ; j++) 53 for(k = 1; k <= n ; k++) 54 if(j!=k&&j!=i&&i!=k&&w[j][k]==0&&w[j][i]&&w[i][k]) 55 { 56 w[j][k] = w[j][i]+w[i][k]; 57 maxz = max(maxz,w[j][k]); 58 } 59 if(maxz>=s) 60 printf("YES "); 61 else 62 printf("NO "); 63 return 0; 64 }