#9334. 有机化学之神偶尔会做作弊(洛谷 - P2783)

    ID: 9334 Type: Default 1000ms 125MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>图论强连通分量最近公共祖先,LCA

有机化学之神偶尔会做作弊(洛谷 - P2783)

说明

你翻到那一题:给定一个烃,只含有单键(给初中生的一个理解性解释:就是一堆碳用横线连起来,横线都是单条的)。

然后炎魔之王拉格纳罗斯用他的火焰净化了一切环(???)。所有的环状碳都变成了一个碳,如图所示。

环状碳变为一个碳

然后指定多组碳,求出它们之间总共有多少碳,如图所示(和上图没有关系)。

求出有多少碳

但是因为在考试,所以你只能把这个答案用手语告诉你的基友。你决定用二进制来表示最后的答案,如图所示(不要在意,和题目没有什么没关系)。

二进制手语

题意简述

给你一个 n 个点,m 条边的无向图。把图中所有的环变为一个点,求变化后某两个点之间有多少个点。

输入格式

第一行两个整数 nm。表示有 n 个点,m 根键。

接下来 m 行每行两个整数 uv 表示 u 号碳和 v 号碳有一根键。

接下来一个整数 tot 表示询问次数。

接下来 tot 行每行两个整数,ab 表示询问的两个碳的编号。

输出格式

tot 行,每行一个二进制数,表示答案。

3 2
1 2
2 3
2
1 2
2 3
10
10

提示

两个碳不成环。

数据范围及约定

对于 100% 的数据,1<n1041<m5×104


原题链接

Source

图论 强连通分量 最近公共祖先,LCA