简单来说就是本人没读清题目就做题但是过了,反应过来连样例都过不了,它的测试并没有严格观察各点之间是否联通,以下是本人代码,最后输出禁了,希望有权限的人反馈还有解决一下这个问题@洛谷:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,i,m,j,x,y,t,z=0;
scanf("%d%d",&n,&m);
vector<int>a(n+1,0);
vector<int>b(n+1,0);
for(i=0;i<m;i++){
scanf("%d%d%d",&x,&y,&t);
if(a[x]==0){
a[x]=t;
}
if(a[y]==0){
a[y]=t;
}
if(a[x]>t){
if(b[x]==0||b[x]>t){
b[x]=t;
}
}
if(a[y]>t){
if(b[y]==0||b[y]>t){
b[y]=t;
}
}
}
for(i=1;i<=n;i++){
if(b[i]!=0&&b[i]>z){
z=b[i];
}else if(b[i]==0&&a[i]>z){
z=a[i];
}else if(a[i]==0&&b[i]==0){
z=-1;
break;
}
}
return 0;
}