ARC 065D Connectivity 并查集+map
来源:互联网 发布:淘宝消字灵是真的么 编辑:程序博客网 时间:2024/06/06 19:03
点击打开链接
//题意:求出i->j既可以通过roads到达又可以通过railways达到的city数量(自己和本身connect)
//先用并查集分好成两组A,B(road,railway),如何快速求出每个i对应的j的数量? ((i,j)在A是联通的&&在B也联通的)
//即如果i两组的祖先为x,y j的祖先也为x,y则i->j在两组都即可通过road也可以通过railway(i->x->j),(i-y->j)
//(i,j)满足条件当且仅当(x,y)相等,用map记录每个i的祖先(xi,yi)的出现次数即可,复杂度为(O(nlogn))
#include <bits/stdc++.h>using namespace std;typedef pair<int,int> P;typedef long long ll;const int N=2e5+20;const int M=30;struct Union_find{Union_find(int n){par.resize(n);for(int i=0;i<n;i++) par[i]=i;}int find(int x){return (par[x]==x)?x:par[x]=find(par[x]);}void unite(int a,int b){a=find(a),b=find(b);par[a]=b;}bool same(int a,int b){return find(a)==find(b);}vector<int> par;};int main(){int n,k,l;cin>>n>>k>>l;Union_find uf1(n);for(int i=0;i<k;i++){int u,v;cin>>u>>v;uf1.unite(u-1,v-1);//vector par[i]从0开始标号 }Union_find uf2(n);for(int i=0;i<l;i++){int p,q;cin>>p>>q;uf2.unite(p-1,q-1);}map<P,int> mp;for(int i=0;i<n;i++){mp[make_pair(uf1.find(i),uf2.find(i))]++;}for(int i=0;i<n;i++){cout<<mp[make_pair(uf1.find(i),uf2.find(i))]; if(i==n-1)cout<<endl;elsecout<<' ';}return 0;}
0 0
- ARC 065D Connectivity 并查集+map
- Graph Connectivity UVA, 459(并查集)
- poj2838 Graph Connectivity 邻接表加上并查集
- 【SPOJ-DYNACON1】Dynamic Tree Connectivity【LCT/并查集】
- CF Round#396D (Div. 2)(Codeforces 766D) 简单并查集+map
- codeforces 766D Mahmoud and a Dictionary(带权并查集+map查询)
- Codeforces #396 (Div. 2) D. Mahmoud and a Dictionary (并查集+map
- Codeforces 766D Mahmoud and a Dictionary(并查集+map)
- 并查集系列(一)——Social network connectivity
- AtCoder - 2159 Connectivity 并查集+二分、快速的求出2个集合的交集
- ACdream 1056并查集+map
- hihocode的并查集&map
- 使用map容器写并查集
- Virtual Friends<并查集+map求解>
- MUTC 2 D - Matrix 并查集
- HDU 4496 D-City(并查集)
- hdu(4996) D-City 并查集
- Codeforces 366D 贪心+并查集
- Day06难点
- PAT B1061
- ButterKnife 8.+版本在AndroidStudio中的配置
- @RequestMapping用法详解之地址映射(转)
- MySQL 数据库安装教程
- ARC 065D Connectivity 并查集+map
- C# params可变数量参数
- PAT B1062
- confirm、prompt、 window.open
- 面试资料整理
- 异常处理之[Error: com.android.ide.common.process.ProcessException]
- ubuntu12.04 终端中文显示乱码
- idea maven
- PAT B1063