社区讨论
为什么样例会RE
P14362[CSP-S 2025] 道路修复参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mhixqo2s
- 此快照首次捕获于
- 2025/11/03 17:26 4 个月前
- 此快照最后确认于
- 2025/11/08 07:50 3 个月前
CPP
#include<iostream>
#include<cstdio>
#include<vector>
#include<queue>
using namespace std;
int n,m,k;
struct zuoti{
int u;
int v;
int info;
};
bool operator < (zuoti a,zuoti b){
return a.info>b.info;
}
priority_queue<zuoti>pq;
int fa[10005];
int find(int x){
if(fa[x]==0)return x;
else {
return fa[x]=find(fa[x]);
}
}
int merge(int a,int b){
fa[find(a)]=b;
}
//vector<pair<int,int> >e[10005];
int main(){
// freopen("road.in","r",stdin);
// freopen("road.out","w",stdout);
cin >> n >> m >> k;
for(int i=1;i<=m;i++){
int u,v,info;
cin >> u >> v >> info;
// e[u].push_back({v,info});
// e[v].push_back({u,info});
pq.push({u,v,info});
}
for(int i=1;i<=k;i++){
int cj;
cin >> cj;
for(int j=1;j<=n;j++){
int info;
cin >> info;
// e[j].push_back({n+i,info});
// e[n+i].push_back({j,info});
pq.push({j,n+i,info});
}
}
int ans=0;
while(!pq.empty()){
zuoti tmp=pq.top();
pq.pop();
int t1=tmp.u,t2=tmp.v;
if(find(t1)!=find(t2)){
merge(t1,t2);
ans+=tmp.info;
}
}
cout << ans;
return 0;
}
大概知道数组大小应该开1e4+11,但是为什么样例都RE了,本地能跑
回复
共 1 条回复,欢迎继续交流。
正在加载回复...