#P2783. 有机化学之神偶尔会做作弊

    ID: 2433 Type: RemoteJudge 1000ms 125MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>图论强连通分量,缩点最近公共祖先,LCA

有机化学之神偶尔会做作弊

题目背景

XS 中学化学竞赛组教练是一个酷爱炉石的人。

有一天他一边搓炉石一边监考,而你作为一个信息竞赛的大神也来凑热闹。

然而你的化竞基友却向你求助了。

“第 1354 题怎么做?”<--手语 他问道。

题目描述

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

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

环状碳变为一个碳

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

求出有多少碳

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

二进制手语

题意简述

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

输入格式

第一行两个整数 nnmm。表示有 nn 个点,mm 根键。

接下来 mm 行每行两个整数 uuvv 表示 uu 号碳和 vv 号碳有一根键。

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

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

输出格式

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

3 2
1 2
2 3
2
1 2
2 3

10
10

提示

两个碳不成环。

数据范围及约定

对于 100%100\% 的数据,1<n1041<n\le10 ^ 41<m5×1041<m\le5\times 10 ^ 4