QOJ.ac

QOJ

Time Limit: 4 s Memory Limit: 512 MB Total points: 100 Difficulty: [show] Hackable ✓

#2210. Hamilton Path

الإحصائيات

给定一个包含 $n$ 个顶点和 $m$ 条边的有向图。顶点编号从 $1$ 到 $n$。你需要找到所有满足以下约束条件的顶点排列 $p_1, p_2, \dots, p_n$:

  • 对于所有 $1 \le i < j \le n$,存在边 $(p_i, p_j)$ 当且仅当 $j = i + 1$。

我们定义排列 $p_1, p_2, \dots, p_n$ 的值为: $$\left( \sum_{i=1}^{n} p_i \cdot 10^{n-i} \right) \pmod{10^9 + 7}$$

输出满足条件的排列数量,对 $10^9 + 7$ 取模。如果满足条件的排列数量不大于 $n$,你还需要将它们按字典序排列,并按此顺序输出它们的值。

输入格式

第一行包含一个整数 $T$ ($T \le 10^5$),表示测试用例的数量。

对于每个测试用例,第一行包含两个整数 $n$ 和 $m$ ($n \ge 1, m \ge 0, 1 \le \sum n \le 5 \cdot 10^5, 1 \le \sum m \le 10^6$)。

接下来的 $m$ 行,每行包含两个整数 $u$ 和 $v$ ($1 \le u, v \le n, u \neq v$),表示图中存在一条从 $u$ 到 $v$ 的有向边。注意,图中可能包含重边。

输出格式

对于每个测试用例,第一行输出满足条件的排列数量,对 $10^9 + 7$ 取模。如果满足条件的排列数量不大于 $n$,则在下一行按字典序输出所有排列的值,用空格分隔。如果数量大于 $n$ 或者没有解,则不需要输出空行。

样例

输入 1

1
5 6
3 4
2 5
5 3
1 3
4 2
5 1

输出 1

2
13425 34251

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#1134EditorialOpen题解vme502026-02-26 07:12:04View
#580Editorial Open集训队作业 解题报告 by 龚咏乔Qingyu2026-01-02 22:33:34 Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.