最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- 动漫排序

C++ 少儿编程 1241浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

【题目描述】

小$W$最近迷上了日本动漫,每天都有无数部动漫的更新等着他去看,所以他必须将所有的动漫排个顺序,当然,虽然有无数部动漫,但除了$1$号动漫,每部动漫都有且仅有一部动漫是它的前传(父亲),也就是说,所有的动漫形成一个树形结构。而动漫的顺序必须满足以下两个限制:

①一部动漫的所有后继(子孙)都必须排在它的后面。

②对于同一部动漫的续集(孩子),小W喜爱度高的须排在前面。

光排序小$W$还不爽,他想知道一共有多少种排序方案,并且输出它$bmod 10007$的答案。

【输入】

第一行表示$T$表示数据组数。接下来每组数据第一行$n$表示有多少部动漫等待排序,接下来$n$行每行第一个数$tot$表示这部动漫有多少部续集,接下来$tot$个数按照小$W$喜爱从大到小给出它的续集的编号。

【输出】

每组数据一行数$ans$,表示答案$bmod 10007$的结果。

【输入样例】

1
5
3 4 3 2
0
1 5
0
0

【输出样例】

2

【提示】

【数据规模】

对于30%的数据,$n≤10$。

对于60%的数据,$n≤100$。

对于100%的数据,$n≤1000$。

您必须 登录 才能发表评论!