hdu 4496 D-City (并查集)
来源:互联网 发布:mac安装exe软件 编辑:程序博客网 时间:2024/04/30 17:36
题意:
题目的意思就是 给你几条边几个点,然后建树,之后依次拆边,问你每次拆完边之后还剩几个独立的点
思路:
先用数组存图,然后从后往前建边,从后往前建i条边就等于从前往后删m-i条边吗
上代码:
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int n,m;struct node {int s,e;}pre[100002];int p[10003],ans[100002];int getf(int x){return p[x]==x?x:p[x]=getf(p[x]);}void init(){for(int i=0;i<=n;i++){p[i]=i;}}int main(){while(scanf("%d%d",&n,&m)!=EOF){init();int sum=0;memset(pre,0,sizeof(pre));for(int i=1;i<=m;i++){scanf("%d%d",&pre[i].s,&pre[i].e);}ans[m]=n;for(int i=m;i>=1;i--){int dx=getf(pre[i].s);int dy=getf(pre[i].e);if(dx!=dy){sum++;p[dx]=dy;}ans[i-1]=n-sum;}for(int i=1;i<=m;i++){printf("%d\n",ans[i]);}}}
阅读全文
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 并查集
- hdu 4496 D-City 并查集
- hdu 4496 D-City(并查集)
- 并查集--HDU - 4496 D-City
- hdu 4496 D-City 并查集
- hdu 4496 D-City (并查集)
- hdu(4996) D-City 并查集
- hdu D-City 反向并查集
- hdu 4496 D-City(并查集)
- HDU 4496 D-City (并查集)
- hdu 4496 D-City (并查集)
- hdu 4496 D-City(反向并查集)
- lintcode--二叉树的最大节点
- 4.Java基础语法(3)
- 文件选择器
- mysql和oracle的区别
- 内部类
- hdu 4496 D-City (并查集)
- kotlin学习的一些学习资源,你需要收藏了
- 设计模式学习笔记——装饰器模式
- 分布式消息队列RocketMQ与Kafka架构上的巨大差异之2 -- CommitLog与ConsumeQueue
- 196. Delete Duplicate Emails
- Y
- sprintf函数用法详解
- [题解]codeforces 438d The Child and Sequence
- Oracle 10g安装教程