#P13270. [集训队互测 2022day10]抽奖机
[集训队互测 2022day10]抽奖机
抽奖机
时间&空间限制
Time Limit: 1.5s
Memory Limit: 256MB
题目描述
奆 有一个神秘的抽奖机,它由 个转轮组成。
每个转轮有三个档位,记作,转轮的转动与档位关系如下:
-
当一个档位转轮被转过一次,会变成档位
-
当一个档位转轮被转过一次,会变成档位
-
当一个档位转轮被转过一次,会变成档位
一开始所有 个转轮都在0档,将所有转轮的集合记作 。
抽奖机的抽奖器有 个模式,每个模式可以用两个数字 描述,表示:
- 将分为三个集合,即满足:
$A\cap B,A\cap B,B\cap C=\emptyset,A\cup B\cup C=S,|A|=a_i,|B|=b_i$
其中表示集合的大小,容易发现一共有种分配集合的方法
- 然后将集合中的转轮转动一次,所有集合中的转轮转过两次
每次拉下摇杆,抽奖机都会进行转动,一次转动如下:
-
从所有模式里选取一个进行;
-
从所有可能的转动情况中选择一个进行。
最终,应该有$\displaystyle \sum_{i=1}^m \cfrac{n!}{a_i!b_i!(n-a_i-b_i)!}$种方案,在这样的所有方案中选择一个。
现在奆通过py手段得知了所有的模式,但是ta依然无法控制抽奖机的结果。
自暴自弃的ta决定连续乱拉次拉杆,而并且在此之前,ta暴怒地逼问你:
最终抽奖机恰好有 个转轮在 档, 个转轮在 档的方案数。
由于答案可能非常大,请输出其 的结果。
输入格式
第一行三个正整数 ,表示转轮个数,模式个数,奆 拉拉杆的次数。
然后 行,每行两个整数 ,描述 奆 通过py得知的一个模式。
输出格式
输出 行,第 行输出 个数。
第 行第 个数表示:最终抽奖机恰好有 个转轮在 档, 个转轮在 档的方案数,。
输入输出样例
machine1.in
2 2 2
0 1
1 0
machine1.out
4 2 2
2 4
2
machine2.in
2 2 2
0 1
2 0
machine2.out
0 0 3
6 0
0
machine3.in
3 6 4
1 2
2 0
1 1
0 1
1 0
0 3
machine3.out
4884 14295 14508 4873
14529 29202 14331
14313 14526
4860
样例解释
对于样例1,容易发现一次有种可能 01,10,02,20
两次一共有种可能
01 02,11,00,21
10 11,20,21,00
02 00,12,01,22
20 21,00,22,10
数据规模与约定
本题不采用子任务评测。
对于所有数据,满足 $n\leq 120,m\leq 10^5,k\leq 10^{18},\forall 0\leq a_i,b_i\leq n,\forall a_i+b_i\leq n$ 。
给定的个模式之间可能有重复 。
下表列出了所有20个测试点的上限以及数据的特殊性质:
| # | n | m | k | 特殊性质 |
|---|---|---|---|---|
| 1 | 3 | 6 | 4 | 无 |
| 2 | 5 | 10 | ||
| 3 | 8 | 3 | 5 | |
| 4 | 20 | |||
| 5 | 17 | 500 | ||
| 6 | 20 | |||
| 7 | 40 | 20 | ||
| 8 | ||||
| 9 | 50 | 无 | ||
| 10 | 40 | |||
| 11 | 50 | |||
| 12 | 10 | |||
| 13 | 80 | 100 | ||
| 14 | 100 | |||
| 15 | 100 | 无 | ||
| 16 | ||||
| 17 | ||||
| 18 | 110 | |||
| 19 | ||||
| 20 | 120 | |||