SP8096 SPQUEUE - Queue
题目背景
:::warning[警告]{open}
这道题在 SPOJ 上被隐藏,不保证能正常提交。
:::
题目描述
在一些特别的场合,Nadia 的公司会为所有员工提供特殊的午餐。食品供应开始之前,所有员工都需要在餐台前排成一列。公司制定了一条排队规则:如果 Abul 是 Babul 的主管,并且 Abul 站在队列的第 $k$ 个位置,那么 Babul 不能站在第 $1$ 到第 $k-1$ 个位置。公司共有 $N$ 名员工,每个人都有一位主管,只有一个例外,没有主管。
你的任务是计算可以有多少种不同的方式来安排这个队列。请放心,至少存在一种排队方式符合要求。
输入格式
第一行是测试用例的数量。
对于每个测试用例:
- 第一行包含两个整数 $M$ 和 $N$,其中 $M$ 用于取模运算。
- 接下来的 $N-1$ 行,每行包含一个整数,表示第 $i$ 个员工的主管。
输出格式
对于每个测试用例,输出这个问题的排队方式总数对 $M$ 取模后的结果。
说明/提示
- 当测试用例较多时,$1 \leq N \leq 10^5$;
- 当测试用例只有一个时,$1 \leq N \leq 5\times 10^5$;
- $1 \leq M \leq 10^9$。