#P6651. 「SWTR-5」Chain
「SWTR-5」Chain
题目描述
给定 个点, 条边的有向无环图。不保证图连通。
次询问,每次给出 和 个互不相同的数 ,求出如果去掉这 个点,整个有向无环图将剩余多少条链。答案对 取模。每次询问独立。
-
“链”的定义是:我们设一条长度为 的链的路径为 ,则应满足 入度为 , 出度为 。你可以将其理解为一条食物链。
-
两条链是“不同的”,当且仅当它们的长度不同,或者经过的点集不同。
-
需要特别注意的是,删去某些点后新产生的链不计入答案。 例如 一图中,有 条链 。如果去掉 号点,则剩余 条链。
输入格式
第一行两个整数 ,分别表示点的个数和边的条数。
接下来 行,每行两个整数 ,表示 有一条有向边。
第 行一个整数 ,表示询问个数。
接下来 行:
- 每行先是一个整数 ,表示去掉的点的个数。
- 接下来 个整数 ,表示去掉的点的编号。
输出格式
共 行,每行表示该次询问答案对 取模后的值。
7 14
3 2
4 5
2 5
2 6
3 1
3 5
3 7
3 6
6 4
1 4
6 5
1 6
7 2
7 4
7
3 2 4 6
2 4 6
2 2 5
2 1 4
0
1 4
1 6
1
3
0
6
13
7
5
233 1
1 2
6
0
1 10
2 10 40
1 1
1 2
2 1 2
232
231
230
231
231
231
提示
「样例 说明」
DAG 如图:
询问 :如果去掉 ,则剩余 条链:。
询问 :如果去掉 ,则剩余 条链:,,。
询问 :如果去掉 ,则剩余 条链:,,,,。
「数据范围与约定」
本题采用捆绑测试。
- Subtask 1(1 point):给定的图是一条链。
- Subtask 2(14 points):。
- Subtask 3(20 points):。
- Subtask 4(17 points):。
- Subtask 5(18 points):。
- Subtask 6(30 points):无特殊限制。
对于 的数据:,$1\leq m\leq \min(\frac{n\times(n-1)}{2},2\times 10^4)$,。
所有询问满足:,,。保证 互不相同。
本题轻微卡常,请注意 IO 优化。
「题目来源」
Sweet Round 05 D。
idea & solution:Alex_Wei。