#P6582. [Petrozavodsk Winter 2020]Topological Ordering拓扑序计数
[Petrozavodsk Winter 2020]Topological Ordering拓扑序计数
题目描述
本题中涉及到的图论定义:
- 一个 个点,点的编号为 的有向图 的拓扑序是一个 的排列 ,且若 中存在 的边,就有 中 出现在 之前。
今天,算法竞赛机器人小 G 学习了拓扑排序相关知识。凭着强大的机器学习本领,它很快便一并学会了如何计算一个有向无环图的拓扑序个数。接着,它开始思考一个拓展问题:给定一个有向无环图 和两个 中的点 ,请你求出有多少种 的拓扑序满足 排在 之前。
你知道稍加思考后小 G 也能秒掉这题。不巧,就在这时停电了,依靠插头进食的小 G 也因此停止工作了。所以你只好自己解决这个拓展问题了。
为了让问题更富有挑战性,设 中总点数为 ,请你对所有 对 都求出答案。
输入格式
本题有多组数据,第一行是数据组数 。
对于每组数据:第一行两个正整数 ,分别为 的点数和边数。接下来 行,每行两个正整数 ,表示有向图里一条 的边。保证没有重边且 (也就是 总是一个合法拓扑序)。
保证同一个测试点中至多有 组数据满足 。
输出格式
对每组数据输出一个 的矩阵,第 行第 列是 时的答案,注意 的顺序和 是反的。特别地,当 时请你输出 0。
样例输入输出
样例输入 1
2
3 2
1 2
1 3
4 2
1 2
3 4
样例输出 1
0 0 0
2 0 1
2 1 0
0 0 3 1
6 0 5 3
3 1 0 0
5 3 6 0
样例 1 解释
对于第一组数据,原图共有两种拓扑序 。满足 在 前面的有 种,所以答案矩阵的第 行第 列是 ;满足 在 前面的有 种,所以答案矩阵的第 行第 列是 。
样例 2/3
见下发文件。
样例 满足子任务 的限制。
样例 满足子任务 的限制。
数据范围
对于所有数据:,保证同一个测试点中至多有 组数据满足 。
子任务编号 | $n\le$ | $m\le$ | $T\le$ | 分数 |
---|---|---|---|---|
$1$ | $5$ | $\binom n2$ | $20$ | $10$ |
$2$ | $20$ | $0$ | $5$ | |
$3$ | $1$ | $5$ | ||
$4$ | $2$ | $5$ | ||
$5$ | $10$ | $10$ | ||
$6$ | $10$ | $\binom n2$ | $30$ | $5$ |
$7$ | $12$ | $40$ | $5$ | |
$8$ | $14$ | $50$ | $10$ | |
$9$ | $16$ | $60$ | $5$ | |
$10$ | $17$ | $70$ | $5$ | |
$11$ | $18$ | $80$ | $10$ | |
$12$ | $19$ | $90$ | $5$ | |
$13$ | $20$ | $100$ | $20$ |
时间限制:
空间限制:
相关
在下列比赛中: