题号:NC219798
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述
NIT 在 n 年前还是普及组选手的时候做过这样一个题目,求一个图的连通块数目,以NIT现在国家队的实力,做这样的题实在是太侮辱他的智商了,于是他思考着加强这道题目。
给你一个 n 个点的图,一开始这个图上有 m 条边。
你需回答共 q 次询问操作。
对于每次询问操作,你将会得到一个数 x ,求出在当前图的基础上加入 x 条边后最多有几个连通块。
输入描述:
输入共 m+q+1 行。
第一行 3 个 正整数 n,m,q ,分别表示点数,边数,操作数。
接下来 m 行,每行 2 个正整数 x,y 表示 x,y 之间有一条连边,无重边自环。
接下来 q 行,每行 1 个数为 x 表示在原图上加入 x 条边后最多有几个连通块,不允许加重边,自环,询问之间互不影响。
输出描述:
你的输出应有 q 行,每行 1 个正整数 ans,表示这次询问的答案。
示例1
说明
在原图上添加 2 条边时,无论怎样连边都会连成一个连通块,故答案为 1。
在原图上添加 0 条边时,显然连通块数目不变,为 2。
在原图上添加 7 条边时,原图变为完全图,有一个连通块,故答案为 1。
示例2
输入
复制
7 4 5
6 4
7 1
3 1
5 2
5
8
1
10
17
备注:
对于100%的数据,有

,保证数据合法,即无重边自环,且每个询问加入 x 条边后一定有:总边数
%7D%7B2%7D)
读入量可能较大,请使用较快的读入方式。