博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 1015: [JSOI2008]星球大战starwar 并查集
阅读量:4326 次
发布时间:2019-06-06

本文共 1939 字,大约阅读时间需要 6 分钟。

1015: [JSOI2008]星球大战starwar

Description

很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系。某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球。这些星球通过特殊的以太隧道互相直接或间接地连接。 但好景不长,很快帝国又重新造出了他的超级武器。凭借这超级武器的力量,帝国开始有计划地摧毁反抗军占领的星球。由于星球的不断被摧毁,两个星球之间的通讯通道也开始不可靠起来。现在,反抗军首领交给你一个任务:给出原来两个星球之间的以太隧道连通情况以及帝国打击的星球顺序,以尽量快的速度求出每一次打击之后反抗军占据的星球的连通快的个数。(如果两个星球可以通过现存的以太通道直接或间接地连通,则这两个星球在同一个连通块中)。

Input

输入文件第一行包含两个整数,N (1  < =  N  < =  2M) 和M (1  < =  M  < =  200,000),分别表示星球的数目和以太隧道的数目。星球用 0 ~ N-1的整数编号。接下来的M行,每行包括两个整数X, Y,其中(0 < = X <> Y 表示星球x和星球y之间有“以太”隧道,可以直接通讯。接下来的一行为一个整数k,表示将遭受攻击的星球的数目。接下来的k行,每行有一个整数,按照顺序列出了帝国军的攻击目标。这k个数互不相同,且都在0到n-1的范围内。

 

Output

输出文件的第一行是开始时星球的连通块个数。接下来的N行,每行一个整数,表示经过该次打击后现存星球的连通块个数。

Sample Input

8 13
0 1
1 6
6 5
5 0
0 6
1 2
2 3
3 4
4 5
7 1
7 2
7 6
3 6
5
1
6
3
5
7

Sample Output

1
1
1
2
3
3

HINT

 

Source

题解:离线倒着来,就等于加点了

//meek///#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std ;#define mem(a) memset(a,0,sizeof(a))#define pb push_back#define fi first#define se second#define MP make_pairtypedef long long ll;const int N = 510000;const int inf = 99999999;const int mod= 1000000007;int n,m,k[N],q,num,parent[N],done[N];vector
G[N],ans;void init() { mem(done);num=n; for(int i=0;i<=n;i++) parent[i]=i;}int finds(int x) { if(x != parent[x]) return parent[x] = finds(parent[x]); else return x;}void Union(int x,int y) { int fx = finds(x); int fy = finds(y); if(fx != fy) { num--; parent[fy]=fx; }}int main() { scanf("%d%d",&n,&m); init();int x,y; for(int i=1;i<=m;i++) { scanf("%d%d",&x,&y); G[x].pb(y); G[y].pb(x); } scanf("%d",&q); for(int i=1;i<=q;i++) { scanf("%d",&k[i]); done[k[i]] = 1; } for(int i=0;i
=1;i--) { ans.pb(num-i); for(int j=0;j
=0;i--) { printf("%d\n",ans[i]); } return 0;}
代码

 

转载于:https://www.cnblogs.com/zxhl/p/5071079.html

你可能感兴趣的文章
Python学习笔记-EXCEL操作
查看>>
依照特定轨迹遍历字符串图
查看>>
Mantis 1.1.0 报告问题中设置必填项或取消必填项[Z]
查看>>
爬虫添加代理
查看>>
POJ 题目1204 Word Puzzles(AC自己主动机,多个方向查询)
查看>>
oracle经常使用函数(2)
查看>>
Iocomp控件之数字显示【图文】
查看>>
Androd开发之广告栏设计
查看>>
jquery.fly.min.js 拋物插件
查看>>
mini2440系统引导(五)串口UART
查看>>
JDK5.0新特性系列---9.注释功能Annotation
查看>>
普通平衡树(指针splay)
查看>>
【HEOI 2018】Day2 T2 林克卡特树
查看>>
vue-cli中配置sass的方法
查看>>
使用CSS3 @font-face【实现个性化字体 】
查看>>
codereview tool
查看>>
input type=file 标签禁止让用户手动输入
查看>>
一个诡异的WCF问题
查看>>
自定义adapter 的getView方法被重复执行了n次的解决方法
查看>>
百度地图学习(一):HelloWorld开始
查看>>