题目描述
给定一个大小为 m×m 的方形棋盘。棋盘的行和列从 1 到 m 编号。
需要在棋盘上放置筹码,使得每个格子内最多有一个筹码。同时,必须满足 n 条限制。第 i 条限制给出两个整数 ri 和 ci,这意味着在坐标为 [1…ri]×[1…ci] 的矩形区域内,最多只能放置一个筹码。
要求计算满足所有限制的不同筹码放置方案的数量,并对 109+7 取模后的余数。
输入格式
输入数据的第一行包含两个整数 n 和 m —— 限制的数量和棋盘的尺寸(1≤n≤2⋅105,1≤m≤109)。
接下来 n 行,每行包含两个数字 ri 和 ci(1≤ri,ci≤m)。
输出格式
输出一个数字 —— 允许的筹码放置方案数对 109+7 取模的结果。
1 4
4 4
17
2 2
1 2
2 1
10
3 5
2 5
3 4
4 4
4480
提示
样例解释
在第一个样例中,整个棋盘上最多只能放置一个筹码。有 4×4=16 种放置一个筹码的方案,以及 1 种不放置任何筹码的方案。
评分规则
| 子任务 |
分值 |
额外限制 |
必要子任务 |
| 1 |
3 |
n≤10,m≤4 |
--- |
| 2 |
6 |
n=1,m≤1000 |
| 3 |
8 |
n≤10,m≤1000 |
1, 2 |
| 4 |
n≤15,m≤109 |
1–3 |
| 5 |
10 |
n≤2500,m≤100 |
1 |
| 6 |
n≤2500,m≤250 |
1, 5 |
| 7 |
n≤2500,m≤1000 |
1–3, 5, 6 |
| 8 |
n≤2500,m≤105 |
1–3, 5–7 |
| 9 |
15 |
n≤2⋅105,m≤2⋅105 |
1–3, 5–8 |
| 10 |
20 |
无额外限制 |
1–9 |
翻译由 DeepSeek 完成