测试点超水
查看原帖
测试点超水
684245
zhangyaiwei楼主2022/6/5 09:00

这是我的AC代码,试一下,样例都过不了,建议加强

#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,t,f[1111],T=0,went[1111],cnt;
int find(int k){
    if(f[k]==k)return k;
    return f[k]=find(f[k]);
}
struct A{
	int x,y;
};
vector<A> ts[111111];
int main(){
	cin>>n>>m;
	for(int i=0;i<m;i++){
		cin>>x>>y>>t;
		ts[t].push_back({x,y});
		T=max(T,t);
	}
	for(int i=1;i<=T;i++){
		for(int j=0;j<ts[i].size();j++){
			f[find(ts[i][j].x)]=find(ts[i][j].y);
			if(went[ts[i][j].x]==0){
				cnt++;
			}
			if(went[ts[i][j].y]==0){
				cnt++;
			}
			went[ts[i][j].x]=went[ts[i][j].y]=1;
			if(cnt>=n){
				cout<<i;
				return 0;
			}
		}
	}
	cout<<-1;
}
2022/6/5 09:00
加载中...