无向图的弦
题号:NC15615
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

对于一个无向图G 上的简单环(simple cycle) C 以及G 上的一条边e,我们称e 是C 的「弦」当且仅当e 的两端点都在C 上且e 本身不是存在于C 的边。
现在给你一个无向图以及好多个询问,每个询问会给你此图上的其中一个简单环,请回答此简单环有多少条「弦」。

输入描述:

输入共有 1+M+1+Q 行。
第一行有两个正整数 N,M,分别代表图的点数和边数。
接下来 M 行中的第 i 行有两个整数 xi,yi,代表此图第 i 条边的两端点。
接着有一个正整数 Q,代表有多少个询问。
最后Q 行中的第i 行有ki+1 个整数,第1 个整数是ki 代表第i 个询问的环的长度,接下来的ki 个整数vi,0,vi,1,…,vi,ki −1 代表此环的的ki 个点,对于所有0≤j<ki,点vi,j 和点vi,(j+1)mod ki 是此环中相邻的两个点。

输出描述:

总共要输出 Q 行,每个询问个输出一行包含一个整数,代表第 i 个询问所给的环共有多少条「弦」。
示例1

输入

复制
7 10
0 1
1 2
2 3
3 4
4 5
5 6
0 6
0 3
3 6
2 5
4
7 0 1 2 3 4 5 6
5 0 3 2 5 6
5 0 1 2 5 6
3 0 3 6

输出

复制
3
1
0
0

备注:

3≤N,M≤3×105
1≤Q≤105
xi<yi
如果 i≠j,(xi,yi)≠(xj,yj)
3≤ki≤M
所有询问中的环都一定是图上的简单环
≤3×105