A network administrator manages a large network. The network consists of N computers and M links between pairs of computers. Any pair of computers are connected directly or indirectly by successive links, so data can be transformed between any two computers. The administrator finds that some links are vital to the network, because failure of any one of them can cause that data can't be transformed between some computers. He call such a link a bridge. He is planning to add some new links one by one to eliminate all bridges.
You are to help the administrator by reporting the number of bridges in the network after each new link is added.
Input
The input consists of multiple test cases. Each test case starts with a line containing two integers N(1 ≤ N ≤ 100,000) and M(N - 1 ≤ M≤ 200,000).
Each of the following M lines contains two integers A and B ( 1≤ A≠ B ≤ N), which indicates a link between computer A and B. Computers are numbered from 1 to N. It is guaranteed that any two computers are connected in the initial network.
The next line contains a single integer Q ( 1 ≤ Q ≤ 1,000), which is the number of new links the administrator plans to add to the network one by one.
The i-th line of the following Q lines contains two integer A and B(1 ≤ A ≠ B ≤ N), which is the i-th added new link connecting computer A and B.
The last test case is followed by a line containing two zeros.
Output
For each test case, print a line containing the test case number( beginning with 1) and Q lines, the i-th of which contains a integer indicating the number of bridges in the network after the first i new links are added. Print a blank line after the output for each test case.
Sample Input
3 2 1 2 2 3 2 1 2 1 3 4 4 1 2 2 1 2 3 1 4 2 1 2 3 4 0 0
Sample Output
Case 1: 1 0 Case 2: 2 0
本题可以先跑一边tarjan求出所有的割桥
并将所有的强连通分量进行缩点
然后对于每次查询对添加新边的两点和他们到lca的点缩点 并将经过的的所有桥进行标记
但是本体的数据水所以不缩点也能过
直接tarjan时求出其深度优先树形图
我们可以不缩点直接在深度优先树形图中跑lca即可
值得一提的就是我之前用map记录一条边是否为割桥
map key 为边上的两个顶点
但是tle了
仔细一想可以证明 在tarjan中跑出的割桥可以用树的子节点记录
改成数组标记后很容易就过了
#include
#include
#include
#include
#include