| 比赛 |
26暑假集训模拟赛3 |
评测结果 |
AAAAAAAAAAATTTTTTTTA |
| 题目名称 |
城市建设 |
最终得分 |
60 |
| 用户昵称 |
郑霁桓 |
运行时间 |
46.934 s |
| 代码语言 |
C++ |
内存使用 |
9.24 MiB |
| 提交时间 |
2026-07-06 12:28:55 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m,qq,fa[200005],p[200005],x[50005],y[50005],z[50005],ds[2000005],xx,yy;
long long as;
vector<pair<int,int> >v[200005];
priority_queue<pair<long long,int> >q;
inline int f(int x){
if(fa[x]!=x) fa[x]=f(fa[x]);
return fa[x];
}
int main(){
freopen("hnoi2010_city.in","r",stdin);
freopen("hnoi2010_city.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>m>>qq;
for(int i=1;i<=n;i++) fa[i]=i;
for(int i=1;i<=m;i++) cin>>x[i]>>y[i]>>z[i];
while(qq--){
cin>>xx>>yy;
z[xx]=yy,as=0;
for(int i=1;i<=n;i++) v[i].clear(),ds[i]=1e9,p[i]=0;
for(int i=1;i<=m;i++) v[x[i]].push_back({y[i],z[i]}),v[y[i]].push_back({x[i],z[i]});
q.push({0,1});
while(!q.empty()){
int tp=q.top().second,pt=-q.top().first;
q.pop();
if(p[tp]) continue;
p[tp]=1,as+=pt;
for(int i=0;i<v[tp].size();i++){
if(!p[v[tp][i].first]) q.push({-v[tp][i].second,v[tp][i].first});
}
}
cout<<as<<"\n";
}
return 0;
}