测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A849. Counting Graphs--Platinum

编程题 NOI/NOI+/CTSC

题目描述

Bessie has a connected, undirected graph $G$ with $N$ vertices labeled
$1\ldots N$ and $M$ edges ($2\le N\le 10^2, N-1\le M\le \frac{N^2+N}{2}$). $G$
may contain self-loops (edges from nodes back to themselves), but no parallel
edges (multiple edges connecting the same endpoints).
Let $f_G(a,b)$ be a boolean function that evaluates to true if there exists a
path from vertex $1$ to vertex $a$ that traverses exactly $b$ edges for each
$1\le a\le N$ and $0\le b$, and false otherwise. If an edge is traversed
multiple times, it is included that many times in the count.
Elsie wants to copy Bessie. In particular, she wants to construct an
undirected graph $G'$ such that $f_{G'}(a,b)=f_G(a,b)$ for all $a$ and $b$.
Your job is to count the number of distinct graphs $G'$ that Elsie may create,
modulo $10^9+7$. As with $G$, $G'$ may contain self-loops but no parallel
edges (meaning that there are $2^{\frac{N^2+N}{2}}$ distinct graphs on $N$
labeled vertices in total).
Each input contains $T$ ($1\le T\le \frac{10^5}{4}$) test cases that should be
solved independently. It is guaranteed that the sum of $N^2$ over all test
cases does not exceed $10^5$.

输入格式

The first line of the input contains $T$, the number of test cases.
The first line of each test case contains the integers $N$ and $M$.
The next $M$ lines of each test case each contain two integers $x$ and $y$
($1\le x\le y\le N$), denoting that there exists an edge between $x$ and $y$
in $G$.
Consecutive test cases are separated by newlines for readability.

输出格式

For each test case, the number of distinct $G'$ modulo $10^9+7$ on a new line.

输入输出样例

输入 #1
1
5 4
1 2
2 3
1 4
3 5
输出 #1
3

说明/提示

In the first test case, $G'$ could equal $G$ or one of the two following
graphs:
5 4
1 2
1 4
3 4
3 5
5 5
1 2
2 3
1 4
3 4
3 5
上一题 去做题 下一题