求代码为啥WA+RE
查看原帖
求代码为啥WA+RE
1268398
BeTheNorthStar楼主2024/9/24 09:15
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=100005;
int n,fa[maxn],ans,cnt[maxn];
struct BNS{
	int x,y,w;
	bool operator<(const BNS &B)const{return w<B.w;}
}a[maxn];
int read(){
	int ret=0,f=1;char ch=getchar();
	while(!isdigit(ch)) f^=!(ch^'-'),ch=getchar();
	while( isdigit(ch)) ret=(ret<<3)+(ret<<1)+(ch&15),ch=getchar();
	if(!f) ret=-ret; return ret;
}
int Get(int x){return fa[x]==x?fa[x]:fa[x]=Get(fa[x]);}
signed main(){
	n=read();
	for(int i=1;i<=n;i++) fa[i]=i,cnt[i]=1;
	for(int i=1;i< n;i++) a[i].x=read(),a[i].y=read(),a[i].w=read();
	sort(a+1,a+n);
	for(int i=1;i< n;i++){
		int fx=Get(a[i].x),fy=Get(a[i].y);
		ans+=cnt[fx]*cnt[fy]*(a[i].w+1)-1,fa[fx]=fy,cnt[fy]+=cnt[fx];
	}printf("%lld\n",ans);
	return 0;
}
2024/9/24 09:15
加载中...