/*
kruscal求最小生成树 ,题目中说不需要考虑整形溢出,可以将__int64改为int,scanf("%I64d%I64d",&n,&m)改为scanf("%d%d",&n,&m),输出同上
*/
/*
求采纳
*/
#include
#include
using namespace std;
int f[111111];
__int64 find(__int64 x)
{
if(x!=f[x])f[x]=find(f[x]);
return f[x];
}
struct edge{
__int64 u,v,w;
}e[1111111];
bool cmp(edge a,edge b)
{
return a.w
int main()
{
__int64 n,m;
while(~scanf("%I64d%I64d",&n,&m))
{
for(__int64 i=0;i
__int64 ans=0,sum=0;
for(__int64 i=0;i
if(sum==n-1)break;
__int64 u=e[i].u,v=e[i].v;
__int64 fu=find(u),fv=find(v);
if(fu!=fv){
sum++;
ans+=e[i].w;
f[fu]=fv;
}
}
printf("%I64d\n",ans);
}
}
不好意思,要吗给钱,要吗把财富提高到500以上