QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 1024 MB Total points: 100

#945. 游乐园

Statistics

你受聘监督一个新游乐园的项目。该公园有一个特殊的噱头:定向滑道,可以让游客快速且有趣地从一个景点到达另一个景点。

公园业主给了你当前的项目:一份计划中的景点列表,以及一份应该在它们之间建造的滑道列表。然而,作为一个商人,他随口设想了一些不可能的事情:例如,他规划了一条从鬼屋到过山车的滑道,另一条从过山车到跳楼机的滑道,以及第三条从跳楼机到鬼屋的滑道。由于滑道只能下坡,很明显这就是一个问题。在建造公园时,你不能忽视物理定律,因此你必须要求更改项目。也许他会接受将跳楼机和鬼屋之间的滑道反向?

形式化地: 项目是景点列表和定向滑道列表。每条滑道从一个景点开始,在另一个景点结束。 方案是通过反转某些滑道(可能是不反转或全部反转)的方向从项目中获得的。 如果存在一种为每个景点分配高度的方法,使得每条滑道都向下,则该方案是合法的 方案的代价是其被反转方向的滑道数量。

对于给定的项目,找出并报告所有合法方案的代价之和。由于这个数字可能很大,请输出其对 $998, 244, 353$ 取模的结果。

输入格式

第一行包含两个空格分隔的整数 $n, m$ ($1 \le n \le 18, 0 \le m \le n(n - 1)/2$),分别表示景点的数量和滑道的数量。景点编号为 $1$ 到 $n$。

接下来 $m$ 行,第 $i$ 行包含两个空格分隔的整数 $a_i, b_i$ ($1 \le a_i, b_i \le n$),表示一条从 $a_i$ 到 $b_i$ 的滑道。

你可以假设: 没有自环。(对于每个 $i$:$a_i \neq b_i$。) 没有重复的滑道。(对于所有 $i \neq j$:$a_i \neq a_j$ 或 $b_i \neq b_j$。) * 没有一对景点在两个方向上都有连接。(无序对 $\{a_i, b_i\}$ 是不同的。)

输出格式

输出一行,包含一个整数,即所有合法方案的代价之和对 $998, 244, 353$ 取模的结果。

子任务

子任务 1 (7 分):$n \le 3$ 子任务 2 (12 分):$n \le 6$ 子任务 3 (23 分):$n \le 10$ 子任务 4 (21 分):$n \le 15$ 子任务 5 (37 分):无附加限制

样例

样例输入 1

2 1
1 2

样例输出 1

1

样例输入 2

3 3
1 2
2 3
1 3

样例输出 2

9

说明

在第一个样例中,有两个方案: 滑道方向未翻转。该方案代价为 0。 滑道方向已翻转。该方案代价为 1。

由于两个方案都有效,答案为 $0 + 1 = 1$。

在第二个样例中,有八个方案,滑道方向如下: $1 \to 2, 2 \to 3, 1 \to 3$ (代价 0) $1 \to 2, 2 \to 3, 3 \to 1$ (代价 1) $1 \to 2, 3 \to 2, 1 \to 3$ (代价 1) $1 \to 2, 3 \to 2, 3 \to 1$ (代价 2) $2 \to 1, 2 \to 3, 1 \to 3$ (代价 1) $2 \to 1, 2 \to 3, 3 \to 1$ (代价 2) $2 \to 1, 3 \to 2, 1 \to 3$ (代价 2) $2 \to 1, 3 \to 2, 3 \to 1$ (代价 3)

第二个方案不合法,因为存在滑道序列 $1 \to 2 \to 3 \to 1$。这意味着景点 1 必须严格高于自身,这显然是不可能的。同样,第七个方案也不合法。因此答案为 $0 + 1 + 2 + 1 + 2 + 3 = 9$。

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.