社区讨论
解锁成就--满江红--help必关
P1550[USACO08OCT] Watering Hole G参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @m679mesa
- 此快照首次捕获于
- 2025/01/22 10:08 去年
- 此快照最后确认于
- 2025/11/04 11:04 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
const int N=510;
struct RawEdge{
int from,to,val;
};
vector<RawEdge> edges;
int fa[N];
bool cmp(RawEdge &a,RawEdge &b){
return a.val<b.val;
}
int get_fa(int cur){
if(cur==fa[cur]){
return cur;
}
fa[cur]=get_fa(fa[cur]);
return fa[cur];
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,i,j;
cin >> n;
for(i=0;i<+n;i++){
fa[i]=i;
}
for(i=1;i<=n;i++){
int w;
cin >> w;
edges.push_back((RawEdge){0,i,w});
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
int p;
cin >> p;
if(p!=0){
edges.push_back((RawEdge){i,j,p});
}
}
}
sort(edges.begin(),edges.end(),cmp);
int val=0;
for(i=0;i<edges.size();i++){
const int u=edges[i].from;
const int v=edges[i].to;
if(get_fa(u)==get_fa(v)){
continue;
}
fa[get_fa(u)]=get_fa(v);
val=val+edges[i].val;
}
cout << val;
return 0;
}
CPU烧了
回复
共 3 条回复,欢迎继续交流。
正在加载回复...