比赛 26暑假集训模拟赛3 评测结果 AAWWWWWWWWTTTTTTTTTW
题目名称 城市建设 最终得分 10
用户昵称 Ruyi 运行时间 47.867 s
代码语言 C++ 内存使用 4.17 MiB
提交时间 2026-07-06 11:39:22
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
#define N 50001
using namespace std;
ll n,m,q,k,d,fa[N],ans;
struct node{ll x,y,z,id;}e[N];
bool cmp(node i,node j){return i.z<j.z;}
bool cmp2(node i,node j){return i.id<j.id;}
ll find(ll x){
    if(fa[x]==x) return x;
    return fa[x]=find(fa[x]);
}
int main(){
    freopen("hnoi2010_city.in","r",stdin);
    freopen("hnoi2010_city.out","w",stdout);
    cin>>n>>m>>q;
    for(int i=1;i<=m;i++){
        cin>>e[i].x>>e[i].y>>e[i].z;
        e[i].id=i;
    }
    while(q--){
        cin>>k>>d;
        e[k].z=d;
        for(int i=1;i<=n;i++) fa[i]=i;
        sort(e+1,e+m+1,cmp);
        for(int i=1;i<=m;i++){
            if(find(e[i].x)!=find(e[i].y)){
                ans+=e[i].z;
                fa[e[i].x]=e[i].y;
            }
        }
        cout<<ans<<endl;
        ans=0;
        sort(e+1,e+m+1,cmp2);
    }
    return 0;
}