#P14435. [JOISC 2013] 收拾吉祥物 / Mascots
[JOISC 2013] 收拾吉祥物 / Mascots
题目描述
JOI 酱正在和朋友玩吉祥物。快乐的时光转瞬即逝,朋友离开后,现在到了收拾整理的时间。
JOI 酱拥有 个吉祥物,收拾时使用一个由 行 列方格组成的长方形区域。每个方格放置一个吉祥物。从上数第 行、从左数第 列的方格记作 。整理开始时,已有 个方格放置了吉祥物。开始整理时,至少存在一个未放置吉祥物的方格。
JOI 酱逐个放置吉祥物进行整理。当新放置一个吉祥物后,所有有吉祥物的方格恰好构成一个完整的长方形时(排除初始状态已有吉祥物的方格本身就构成一个长方形的情况),JOI 酱会感到 小确幸。所谓所有有吉祥物的方格构成一个完整的长方形,是指存在四个整数 ( 且 ),使得对于所有满足 且 的方格 上都有吉祥物,并且其他任何方格上都没有吉祥物。感到 小确幸 的次数越多,JOI 酱今晚就能睡得越香甜。
放置吉祥物时,不区分所放吉祥物的种类。请问,使得 小确幸 次数最大的放置方式共有多少种?
任务
给定收拾吉祥物的区域信息以及初始已放置吉祥物的信息,编写程序计算使得 小确幸 次数最大的放置方式的数量,并对 取模后的结果。
输入格式
从标准输入读取以下输入数据:
- 第 行包含两个以空格分隔的整数 。 表示放置吉祥物区域的行数, 表示列数。
- 第 行包含一个整数 。 表示整理开始时已放置吉祥物的数量。
- 后续 行描述初始已放置吉祥物的信息。第 行包含两个以空格分隔的整数 ,表示方格 在初始时已放置吉祥物。这些数对互不重复。
输出格式
向标准输出输出可能的放置方式的数量对 取模后的结果。
2 3
2
1 2
2 2
8
3 3
2
1 1
3 3
5040
提示
样例 1 解释
初始状态下, 个方格的状态如下(△ 表示初始时已放置吉祥物的方格):
:::align{center}
:::
在 个方格中, 和 已放置吉祥物。小确幸 次数的最大值为 。
使得 小确幸 次数达到 次的放置方式有以下 种(数字表示新放置吉祥物的顺序):
:::align{center}
:::
在所有这些 个示例中,放置第 个吉祥物后有吉祥物的方格构成一个 的长方形,放置第 个吉祥物后有吉祥物的方格构成一个 的长方形,整个过程 JOI 酱总共感到 次 一点幸福。
限制
所有输入数据满足以下条件:
子任务
子任务 1 [10 分]
满足以下条件:
子任务 2 [30 分]
满足以下条件:
子任务 3 [60 分]
无额外限制。
翻译由 DeepSeek V3 完成