社区讨论
全WA求助
P8710[蓝桥杯 2020 省 AB1] 网络分析参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lucfx87l
- 此快照首次捕获于
- 2024/03/29 17:07 2 年前
- 此快照最后确认于
- 2024/03/29 19:59 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
int fin[1232132];
int now[1232132];
int cha[1231232];
int find(int x){
if(fin[x]==x) return x;
if(fin[x]!=fin[fin[x]])
{
int l=find(fin[x]);
now[x]+=now[fin[x]]-cha[x];
cha[x]=now[l];
}
return fin[x]=find(fin[x]);
}
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++) fin[i]=i;
while(m--){
int x,y,z;
cin>>x>>y>>z;
if(x==1){
if(find(z)!=find(y))
{
if(cha[find(y)]!=0) {
cha[find(y)]+=now[find(y)]-cha[find(y)];
}
cha[find(y)]=now[find(z)];
fin[find(y)]=find(z);
}
}
else{
now[find(y)]+=z;
}
}
for(int i=1;i<=n;i++){
int l=find(i);
//cout<<fin[i]<<" "<<now[i]<<" "<<cha[i]<<endl;
if(l!=i){
cout<<now[i]+now[l]-cha[i]<<" ";
}
else cout<<now[l]<<" ";
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...