#lg10142. [USACO24JAN] Mooball Teams III P
[USACO24JAN] Mooball Teams III P
[AdditionalFile4088.zip](file://AdditionalFile4088.zip?type=additional_file)
#4088. 「USACO 2024.1 Platinum」Mooball Teams III
标签: 传统 | 时间限制: 2000 ms | 内存限制: 256 MiB |
题目描述
题目来自 USACO 2024 January Contest, Platinum Problem 3. Mooball Teams III
Farmer John 在他的农场上有 头牛(),编号为 。奶牛 位于整数坐标 ()。Farmer John 想要挑选两支队伍来玩哞球游戏!
其中一支队伍将是「红队」;另一队将是「蓝队」。对组队只有很少的要求。两队都不能为空,并且 头奶牛中的每一头至多只能在一个队中(可以两队都不在)。唯一的其他要求是基于哞球独特的特点:一个无限长的网,必须将其放置为平面中非整数坐标的水平或垂直直线,例如 。FJ 挑选队伍必须使得可以用网将两队分开。奶牛们不愿意为此进行移动。
帮帮农夫吧!为 Farmer John 计算选择满足上述要求的红队和蓝队的方法数,对 取模。
输入格式
输入的第一行包含一个整数 。
以下 行每行包含两个空格分隔的整数 和 。输入保证 组成 的一个排列, 类似。
输出格式
输出一个整数,为选择满足上述要求的红队和蓝队的方法数,对 取模。
样例 1
输入
2
1 2
2 1
输出
2
我们可以选择红队为牛 ,蓝队为牛 ,或者相反。无论哪种情况,我们都可以用一个网将两支球队分开(例如,)。
样例 2
输入
3
1 1
2 2
3 3
输出
10
以下是所有的十种可能的将奶牛分队的方法;第 个字符表示第 头奶牛的队伍,R 表示红队,B 表示蓝队,或 . 表示第 头奶牛不在一个队伍中。
RRB
R.B
RB.
RBB
.RB
.BR
BRR
BR.
B.R
BBR
样例 3
输入
3
1 1
2 3
3 2
输出
12
以下是所有的十二种可能的将奶牛分队的方法:
RRB
R.B
RBR
RB.
RBB
.RB
.BR
BRR
BR.
BRB
B.R
BBR
样例 4
输入
40
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 20
21 21
22 22
23 23
24 24
25 25
26 26
27 27
28 28
29 29
30 30
31 31
32 32
33 33
34 34
35 35
36 36
37 37
38 38
39 39
40 40
输出
441563023
确保输出答案对 取模。
数据范围与提示
- 测试点 5:。
- 测试点 6-9:。
- 测试点 10-13:。
- 测试点 14-24:没有额外限制。
供题:Dhruv Rohatgi