A7138 | 閉路
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
给定一个包含 $n$ 个顶点和 $n-1$ 条边的连通无向图。每个顶点按顺序编号为 $1$ 到 $n$。
在图论中,满足上述条件的图被称为树,并且具有不包含环路的性质。现在,考虑在原图中添加一条不在原图中的新边 $(a, b)$,此时图中恰好会出现一个环。你的任务是,对于所有给定的候选新边,输出每次添加后所形成的环的长度(即环中包含的边数)。需要注意的是,候选新边有 $Q$ 个,请对所有候选边分别输出答案。
在图论中,满足上述条件的图被称为树,并且具有不包含环路的性质。现在,考虑在原图中添加一条不在原图中的新边 $(a, b)$,此时图中恰好会出现一个环。你的任务是,对于所有给定的候选新边,输出每次添加后所形成的环的长度(即环中包含的边数)。需要注意的是,候选新边有 $Q$ 个,请对所有候选边分别输出答案。
输入格式
输入按以下格式从标准输入给出。
$N$
$x_1\ y_1$
$x_2\ y_2$
$\vdots$
$x_{N-1}\ y_{N-1}$
$Q$
$a_1\ b_1$
$a_2\ b_2$
$\vdots$
$a_{Q}\ b_{Q}$
- 第 $1$ 行给出一个整数 $N\ (1 \leq N \leq 100,\!000)$,表示图的顶点数。
- 接下来的 $N-1$ 行,每行给出一条边的信息。第 $i$ 行包含用空格分隔的两个整数 $x_i$ 和 $y_i$,表示一条连接顶点 $x_i$ 和 $y_i$ 的边。
- 第 $N$ 行之后的第 $1$ 行,给出一个整数 $Q\ (1 \leq Q \leq 100,\!000)$,表示候选新边的数量。
- 接下来的 $Q$ 行,每行给出一条候选新边的信息。第 $i$ 行包含用空格分隔的两个整数 $a_i$ 和 $b_i$,表示一条连接顶点 $a_i$ 和 $b_i$ 的新边。
- 所有给定的边都连接存在的顶点。
- 图中不包含自环,即对于任意 $i$,都有 $x_i \neq y_i$。
- 图中不包含重边,即对于任意 $i, j\ (i \neq j)$,都有 $x_i \neq x_j$ 或 $y_i \neq y_j$。
- 所有候选新边都不在原图中,且不为自环。
输出格式
对于每个候选新边,依次输出将其添加到原图后所形成的环的长度,每个答案占一行。输出末尾需换行。
输入输出样例
输入 #1
5 1 2 1 3 1 4 4 5 3 2 3 2 5 2 4
输出 #1
3 4 3
输入 #2
6 1 2 2 3 3 4 4 5 5 6 4 1 3 1 4 1 5 1 6
输出 #2
3 4 5 6
输入 #3
7 3 1 2 1 2 4 2 5 3 6 3 7 5 4 5 1 6 5 6 4 7 5 3
输出 #3
3 3 5 5 4
样例说明 1
图示如下所示。

C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?