星球大战

提交数: 21, 通过率: 28.57%, 平均分: 53.33

题目描述:

很久以前,在一个遥远的银河……对反抗军来说,这是一个黑暗的时刻。虽然帝国军的终极武器“死亡星球”已经被摧毁,帝国的军队仍然把反抗军从隐藏的军事基地中赶出,并在整个银河系展开追逐。

考虑到邪恶的帝国完全有能力在短时间内制造出“死亡星球”的替代品,为了避免被一次全部歼灭,反抗军的指挥官决定把部队分散在很多星球上。可是,这样会带来通讯上的问题。某些星球之间可以通过“以太”隧道直接通讯,而没有隧道相连的星球之间的通讯就需要其他星球帮忙转发。因此,只有两个星球之间存在一条由“以太”隧道拼接成的路径,它们才可以正常通讯。

银河历2008年4月1日凌晨,反抗军最担心的事情还是发生了。反抗军司令部收到间谍的秘密通知:帝国军成功制造出第二代“死亡星球”,并将依次摧毁如下星球(星球列表略)。指挥官希望迅速计算出每次攻击之后通讯网络的连通情况,即反叛军所占据的星球被分成了多少个连通块,从而帮助决定在何时发动反击。

输入格式:

第一行包含两个整数N (2 ≤ N ≤ 2M)和M (1 ≤ M ≤ 200,000),分别表示星球的数目和 “以太”隧道的数目。星球用0到N – 1的整数编号。

接下来的M行,每行包含两个整数X和Y (0 ≤ X ≠ Y < N),表示星球X和星球Y之间有“以太”隧道,可以直接通讯。

接下来的一行包含一个整数K,表示将遭受攻击的星球的数目。

接下来的K行,每行一个整数,按照顺序列出了帝国军的攻击目标。这K个数互不相同,且都在0到N – 1的范围内。

输出格式:

输出文件应该包含K + 1行,每行一个整数。

第一个整数表示开始时通讯网络的连通支个数。

接下来的第I (1 ≤ I ≤ K)个整数,表示在攻击列表上的第I个星球被摧毁后,通讯网络的连通支个数。

样例输入:

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

样例输出:

1
1
1
2
3
3
时间限制: 1000ms
空间限制: 256MB

来源: JSOI2008