HDU 4496 D-City
来源:互联网 发布:软件皮肤下载 编辑:程序博客网 时间:2024/06/02 10:49
题目:
http://acm.hdu.edu.cn/showproblem.php?pid=4496题意:
给出一张图,求按输入顺序去掉边之后整个图被分为几部分。
思路:
就是求删边之后的联通分量,因为删到最后一定是n部分,可以倒序加边,用并查集判断就行了。能合并两部分那么删去这条变一定能分成两部分。主要就是想到倒着来,也是签到题。代码:
#define N 112345int n,m;int a[N],b[N],res[N];int f[N];void init(int n){ for(int i=0;i<=n;i++) f[i]=i;}int getf(int v){ while(f[v] != v) { f[v]=f[f[v]]; v = f[v]; } return f[v];}bool unions(int x,int y){ x = getf(x); y = getf(y); if(x == y) return true; f[y] = x; return false;}int main(){ int i,j,k,kk,t,x,y,z; while(scanf("%d%d",&n,&m)!=EOF&&n) { init(n); for(i=0;i<m;i++) scanf("%d%d",&a[i],&b[i]); res[m]=n; for(i=m-1;i>=0;i--) { if(!unions(a[i]+1,b[i]+1)) res[i]=res[i+1]-1; else res[i]=res[i+1]; } for(i=1;i<=m;i++) printf("%d\n",res[i]); } return 0;}
0 0
- HDU 4496 D-City
- hdu 4496 D-City
- HDU 4496 D-City
- HDU 4496 D-City
- hdu 4496 D-City
- HDU 4496 D-City
- hdu 4496 D-City
- D-City(HDU 4496)
- HDU 4496 D-City 解题报告
- HDU 4496 D-City(并查集)
- hdu 4496 D-City 并查集
- HDU 4496 D-CITY(并查集)
- 【并查集】-HDU-4496-D-City
- HDU 4496 D-City(并查集)
- hdu 4496 D-City(并查集)
- 【HDU】4496 D-City 并查集
- HDU 4496--D-City 【并查集删边】
- hdu 4496 D-City 并查集
- PHPCMS建站 - 随手记
- jsp往servlet传参
- 生成1到n的随机排列(C++实现)
- Android studio 比Eclipse 好在哪里
- C# 修改默认启动窗口
- HDU 4496 D-City
- 计数排序
- 8天学通MongoDB——第一天 基础入门
- 创建型模式之四——建造者模式
- HttpHelper.cs类
- IO(三、)不覆盖已有文件,并在已有文件末尾处
- 多边形游戏
- iOS ---监听文本框输入
- offsetof与container_of宏[总结]