社区讨论
蒟蒻 20分求大神帮助呀QAQ
P1111修复公路参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mi7yxupj
- 此快照首次捕获于
- 2025/11/21 05:54 4 个月前
- 此快照最后确认于
- 2025/11/21 05:54 4 个月前
代码已经尽量往简单方向写了
20分有点莽```cpp
#include<bits/stdc++.h>
using namespace std;
int N,M;
int m=0;
struct MEAN{
int x;
int y;
int z;
}mean[1111];
bool cmp(MEAN x,MEAN y){
return x.z<y.z;
}
int f[1111];
int finds(int x){
if(x==f[x])
return f[x];
else
return f[x]=finds(f[x]);
}
int main()
{
cin>>N>>M;
for(int i=1;i<=N;i++){
f[i]=i;
}
for(int i=1;i<=M;i++){
cin>>mean[i].x>>mean[i].y>>mean[i].z;
}
sort(mean+1,mean+M+1,cmp);
/for(int i=1;i<=M;i++){
printf("x=%d y=%d z=%d\n",mean[i].x,mean[i].y,mean[i].z);
}/
for(int i=1;i<=N;i++){
printf("[%d]的爸爸是%d\n",i,f[i]);
}
for(int i=1;i<=M;i++){
int fx = finds(mean[i].x);
int fy = finds(mean[i].y);
if(fx!=fy){
f[fx]=fy;
m++;
}
}
for(int i=1;i<=N;i++){
printf("[%d]的爸爸是%d\n",i,f[i]);
}
if(m==N-1){
printf("%d\n",mean[m].z);
}
else
printf("-1");
CPPreturn 0;
}
CPP回复
共 2 条回复,欢迎继续交流。
正在加载回复...