星球大战
提交数: 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