稍微改了一下,AC了
改的东西都标注在下面
```cpp
#include<iostream>//编译器不同,头文件换了一下
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=50000+15;//maxn和maxm的大小改了一下,避免RE
const int maxm=200000+15;
struct Edge
{
int z,x,y;//定义顺序换了一下,排序结果会不一样
}edge[maxm];
int n,m,top[maxn],rec[maxm],ans,tot;//把定义缩成一行,自己看着舒服点
bool cmp(Edge a,Edge b)
{
return a.z<b.z;
}
int found(int x)
{
if (top[x]==x) return x;
return top[x]=found(top[x]);
}
int main()
{
scanf("%d%d",&n,&m);
for (int i=1;i<=m;i++) scanf("%d%d%d",&edge[i].x,&edge[i].y,&edge[i].z);//去了括号
sort(edge+1,edge+m+1,cmp); //O(mlogm)
for (int i=1;i<=n;i++) top[i]=i;
for (int i=1;i<=m;i++)
{
int fx=found(edge[i].x),fy=found(edge[i].y);
if (fx!=fy)
{
tot++;
rec[i]=tot;
ans+=edge[i].z;
top[fx]=fy;
if (tot==n-1) break;
}
}
if (tot==n-1) printf("%d\n",ans);
else printf("orz\n");//加了判断和换行
}
```
by Mingoal @ 2017-02-10 11:32:15
题目要求输出orz
而你输出的并不是
by ars4me @ 2017-04-12 21:03:50
**向各位表示迟到的感谢!**
已经过去半年多了....之前一直没看这篇帖子...
@ ars4me
@ xumingyang
by Akashicw @ 2017-10-24 18:56:14
@[ars4me](/space/show?uid=27394)
@[xumingyang](/space/show?uid=22469)
好像艾特的格式不对...
by Akashicw @ 2017-10-24 18:56:59
@[Akashicw](/space/show?uid=20547) 哈哈哈
by ars4me @ 2017-10-24 18:59:38
想想自己当初还是连克鲁斯卡尔还不会打的蒟蒻...
虽然现在还很弱就是了...
by Akashicw @ 2017-10-24 19:02:47