QOJ.ac

QOJ

时间限制: 2 s 内存限制: 256 MB 总分: 100

#1414. 吉祥物

统计

JOI 酱和朋友们一起玩吉祥物。快乐的时光总是过得很快,朋友们回家后,现在是收拾整理的时间了。

JOI 酱拥有 $R \times C$ 个吉祥物,整理时使用一个纵向 $R$ 行、横向 $C$ 列的矩形区域。每个格子里可以放置 1 个吉祥物。我们将从上往下第 $A$ 行、从左往右第 $B$ 列的格子表示为 $(A, B)$。在开始整理时,已经有 $N$ 个吉祥物被放置在格子里了。开始整理时,至少有一个格子是没有放置吉祥物的。

JOI 酱一个一个地放置吉祥物进行整理。每当新放置一个吉祥物时,如果所有放置了吉祥物的格子恰好构成一个矩形,JOI 酱就会感到“小确幸”(初始状态下所有吉祥物已经构成一个矩形的情况除外)。所谓所有放置了吉祥物的格子构成一个矩形,是指存在 4 个整数 $r_1, r_2, c_1, c_2$ ($1 \le r_1 \le r_2 \le R$ 且 $1 \le c_1 \le c_2 \le C$),使得对于所有满足 $r_1 \le i \le r_2$ 且 $c_1 \le j \le c_2$ 的格子 $(i, j)$,都有吉祥物,且除此之外的其他任何格子都没有吉祥物。感到“小确幸”的次数越多,JOI 酱今晚就能睡得越香。

放置吉祥物时,不区分吉祥物的种类。请问在使得“小确幸”次数达到最大的前提下,放置吉祥物的顺序共有多少种?

题目描述

给定整理吉祥物的场所信息以及已经放置的吉祥物信息,求出使得“小确幸”次数达到最大的放置顺序的方案数,并输出其对 $1\,000\,000\,007$ 取模后的结果。

输入格式

从标准输入读取以下内容:

  • 第 1 行包含两个整数 $R, C$,以空格分隔。$R$ 表示放置吉祥物的行数,$C$ 表示列数。
  • 第 2 行包含一个整数 $N$,表示开始整理时已经放置的吉祥物数量。
  • 接下来的 $N$ 行,每行包含两个整数 $A_i, B_i$,以空格分隔,表示格子 $(A_i, B_i)$ 在初始时已经放置了吉祥物。这些坐标对不会重复。

输出格式

输出使得“小确幸”次数达到最大的放置顺序的方案数,对 $1\,000\,000\,007$ 取模后的结果。

数据范围

所有输入数据满足以下条件:

  • $2 \le R \le 3000$
  • $2 \le C \le 3000$
  • $1 \le N \le 100\,000$

子任务

子任务 1 [10 分] 满足以下条件: $R \le 3$ $C \le 3$

子任务 2 [30 分] 满足以下条件: $R \le 50$ $C \le 50$

子任务 3 [60 分] 没有额外限制。

样例

样例输入 1

2 3
2
1 2
2 2

样例输出 1

8

说明 1

初始状态下 6 个格子的分布如下($\triangle$ 表示初始时已放置吉祥物的格子):

$\triangle$
$\triangle$

在 6 个格子中,$(1, 2)$ 和 $(2, 2)$ 已经放置了吉祥物。“小确幸”次数的最大值为 2。 使得“小确幸”次数为 2 的配置共有以下 8 种(数字表示新放置吉祥物的顺序):

1 $\triangle$ 3
2 $\triangle$ 4
1 $\triangle$ 4
2 $\triangle$ 3
2 $\triangle$ 3
1 $\triangle$ 4
2 $\triangle$ 4
1 $\triangle$ 3
3 $\triangle$ 1
4 $\triangle$ 2
3 $\triangle$ 2
4 $\triangle$ 1
4 $\triangle$ 1
3 $\triangle$ 2
4 $\triangle$ 2
3 $\triangle$ 1

在上述 8 种情况中,放置第 2 个吉祥物时,吉祥物所在的格子构成 $2 \times 2$ 的矩形;放置第 4 个吉祥物时,吉祥物所在的格子构成 $2 \times 3$ 的矩形,总共 JOI 酱会感到 2 次“小确幸”。

样例输入 2

3 3
2
1 1
3 3

样例输出 2

5040

说明 2

无论以何种顺序放置,感到“小确幸”的次数均为 1 次。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.