HDU 4619 Warm up 2 (并查集)
来源:互联网 发布:大襟绸缎面花棉袄淘宝 编辑:程序博客网 时间:2024/05/01 10:32
/* 并操作保证了没有环,n个元素组成的链只要去掉n/2个元素就不会相连*/#include<iostream>#include<cstdio>#include<cstring>#include<vector>using namespace std;int f[2010];int cnt[2010];int mfind(int x){ if(f[x]!=x)f[x]=mfind(f[x]); return f[x];}void make(int a,int b){ int f1=mfind(a); int f2=mfind(b); if(f1!=f2) { f[f2]=f1; cnt[f1]+=cnt[f2]; }}int main(){ int n,m,i,j; vector<int>g[110][110];; while(cin>>n>>m&&(n+m)) { int N=n+m; for(i=0;i<N;i++){ f[i]=i; cnt[i]=1; } for(i=0;i<101;i++) { for(j=0;j<101;j++)g[i][j].clear(); } int x,y; for(i=0;i<n;i++) { cin>>x>>y; g[x][y].push_back(i); g[x+1][y].push_back(i); } for(i=n;i<N;i++) { cin>>x>>y; g[x][y].push_back(i); g[x][y+1].push_back(i); } for(i=0;i<101;i++) { for(j=0;j<101;j++) { if(g[i][j].size()==2) { make(g[i][j][0],g[i][j][1]); } } } int ans=0; for(i=0;i<N;i++){ if(f[i]==i){ if(cnt[i]==1)ans+=1; else ans+=cnt[i]-cnt[i]/2; } } printf("%d\n",ans); } return 0;}
0 0
- hdu 4619 Warm up 2(并查集)
- HDU 4619 Warm up 2 (并查集)
- HDU 4619 Warm up 2(贪心、并查集 | 二分图最大独立集)
- hdu 4619 Warm up 2 (两种解法:1.并查集 2.最大独立集)
- hdu 4619 Warm up 2
- HDU 4619 Warm up 2
- HDU 4619 Warm up 2
- hdu 4619 Warm up 2
- HDU 4619 Warm up 2
- HDU 4619 Warm up 2
- hdu - 4619 - Warm up 2
- HDU-4619-Warm up 2
- hdu 4619 Warm up 2
- hdu 4619Warm up 2
- HDU 4619 Warm up 2
- HDU - 4619 Warm up 2
- hdu 4619 warm up 2 并查集或搜索都可以做出来的题 2013多校联合训练第二场
- hdu 4619 Warm up 2_最大独立集
- ZOJ 1524 Supermarket
- 10G RAC无法启动监听:CRS-0215: Could not start resource 'ora.rac2.LISTENER_RAC2.l
- FusionCharts XT Evaluation最新版简单去除水印的另类方法
- 第三周作业——冒泡排序和归并排序
- java中String的“==”和equals判断相等性
- HDU 4619 Warm up 2 (并查集)
- crontab 中的指定特定的用户身份来运行相关的命令或者脚本
- metasploit更新
- 深入dwr2之三 Dwr2页面请求处理机制分析之engine.js
- CentOS-6.3安装配置Tomcat-7
- 链表逆序
- Lua 检测全局表重复赋值
- Android开发之LisitView的图文并排效果实现(源代码分享)
- hashmap 的一些研究