题目背景
译自 Izborne Pripreme 2022 (Croatian IOI/CEOI Team Selection) D2T2。3s,0.5G。
题目描述
有一张 N 个节点的无向图,依次向图中添加 M 条边。
有 Q 个询问,每次询问给定 u,v,问:至少添加前多少条边,才能使得 u,v 间没有割边(换言之,割去任意一条边,都不影响 u,v 的连通性)。特别地,如果 u,v 始终不连通或者始终有割边,则输出 −1。
输入格式
第一行,两个整数 N,M,含义见题面;
接下来 M 行,第 i 行包含两个整数 si,ti,表示第 i 条边为 (si,ti)。
第 (M+2) 行,一个整数 Q,含义见题面;
接下来 Q 行,每行两个整数 u,v,描述一个询问。
输出格式
输出 Q 行,每行一个整数,表示询问的答案。
提示
对于 100% 的数据,保证:
- 2≤N≤3×105,0≤M≤3×105,1≤Q≤3×105;
- si=ti,u=v;
- 1≤u,v,si,ti≤N。
子任务编号 |
分值 |
约束 |
1 |
10 |
Q=1 |
2 |
20 |
2∣M,(s2i−1,t2i−1)=(s2i,t2i) |
3 |
30 |
N,M≤5000 |
4 |
40 |
无额外约束 |