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

    ID: 7563 远端评测题 1000ms 125MiB 尝试: 5 已通过: 3 难度: 7 上传者: 标签>图论强连通分量最近公共祖先 LCA

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

题目背景

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

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

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

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

题目描述

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

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

环状碳变为一个碳

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

求出有多少碳

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

二进制手语

题意简述

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

输入格式

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

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

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

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

输出格式

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

3 2
1 2
2 3
2
1 2
2 3

10
10

提示

两个碳不成环。

数据范围及约定

对于 100%100\% 的数据,1<n≤1041<n\le10 ^ 4,1<m≤5×1041<m\le5\times 10 ^ 4。