AT_abc025_d [ABC025D] 25個の整数
题目描述
高桥君打算在一个 $5$ 行 $5$ 列的棋盘上,将 $1$ 到 $25$ 的整数各写一次。
高桥君希望整数的摆放满足以下所有条件:
- 每个格子分配一个整数。
- 无论在纵向或横向连续取出 $3$ 个整数,这 $3$ 个数都不会严格递增或严格递减。即,设从上到下第 $i$ 行,从左到右第 $j$ 列的格子中写的整数为 $n_{i,j}$,则需满足以下两个条件:
- 不存在整数组 $(i,j)\ (1\leq i\leq 3,\ 1\leq j\leq 5)$,使得 $n_{i,j}n_{i+2,j}$。
- 不存在整数组 $(i,j)\ (1\leq i\leq 5,\ 1\leq j\leq 3)$,使得 $n_{i,j}n_{i,j+2}$。
部分格子的整数已经确定。你的任务是计算,满足上述条件的剩余整数的所有可能摆放方案数。
输入格式
输入为如下形式,从标准输入读入。
> $x_{1,1}$ $x_{1,2}$ $x_{1,3}$ $x_{1,4}$ $x_{1,5}$
> $x_{2,1}$ $x_{2,2}$ $x_{2,3}$ $x_{2,4}$ $x_{2,5}$
> $x_{3,1}$ $x_{3,2}$ $x_{3,3}$ $x_{3,4}$ $x_{3,5}$
> $x_{4,1}$ $x_{4,2}$ $x_{4,3}$ $x_{4,4}$ $x_{4,5}$
> $x_{5,1}$ $x_{5,2}$ $x_{5,3}$ $x_{5,4}$ $x_{5,5}$
- 第 $1$ 行包含 $5$ 个整数 $x_{1,1}\ (0\leq x_{1,1}\leq 25)$、$x_{1,2}\ (0\leq x_{1,2}\leq 25)$、$x_{1,3}\ (0\leq x_{1,3}\leq 25)$、$x_{1,4}\ (0\leq x_{1,4}\leq 25)$、$x_{1,5}\ (0\leq x_{1,5}\leq 25)$,以空格分隔。
- 第 $2$ 行包含 $5$ 个整数 $x_{2,1}\ (0\leq x_{2,1}\leq 25)$、$x_{2,2}\ (0\leq x_{2,2}\leq 25)$、$x_{2,3}\ (0\leq x_{2,3}\leq 25)$、$x_{2,4}\ (0\leq x_{2,4}\leq 25)$、$x_{2,5}\ (0\leq x_{2,5}\leq 25)$,以空格分隔。
- 第 $3$ 行包含 $5$ 个整数 $x_{3,1}\ (0\leq x_{3,1}\leq 25)$、$x_{3,2}\ (0\leq x_{3,2}\leq 25)$、$x_{3,3}\ (0\leq x_{3,3}\leq 25)$、$x_{3,4}\ (0\leq x_{3,4}\leq 25)$、$x_{3,5}\ (0\leq x_{3,5}\leq 25)$,以空格分隔。
- 第 $4$ 行包含 $5$ 个整数 $x_{4,1}\ (0\leq x_{4,1}\leq 25)$、$x_{4,2}\ (0\leq x_{4,2}\leq 25)$、$x_{4,3}\ (0\leq x_{4,3}\leq 25)$、$x_{4,4}\ (0\leq x_{4,4}\leq 25)$、$x_{4,5}\ (0\leq x_{4,5}\leq 25)$,以空格分隔。
- 第 $5$ 行包含 $5$ 个整数 $x_{5,1}\ (0\leq x_{5,1}\leq 25)$、$x_{5,2}\ (0\leq x_{5,2}\leq 25)$、$x_{5,3}\ (0\leq x_{5,3}\leq 25)$、$x_{5,4}\ (0\leq x_{5,4}\leq 25)$、$x_{5,5}\ (0\leq x_{5,5}\leq 25)$,以空格分隔。
上述 $25$ 个整数表示如下信息:
- 整数 $x_{i,j}\ (1\leq i\leq 5,\ 1\leq j\leq 5)$ 表示从上到下第 $i$ 行,从左到右第 $j$ 列的格子中写的整数。若 $x_{i,j}=0$,表示该格子的整数未确定;若 $x_{i,j}\neq 0$,则该格子的整数为 $x_{i,j}$。
此外,输入保证以下条件:
- 对于 $1\leq i,k\leq 5,\ 1\leq j,l\leq 5$,若 $x_{i,j}\geq 1$ 且 $x_{k,l}\geq 1$ 且 $(i,j)\neq (k,l)$,则 $x_{i,j}\neq x_{k,l}$。
- 满足 $x_{i,j}\neq 0$ 的格子 $(i,j)$ 至少有 $5$ 个。
输出格式
输出满足条件的剩余整数的所有可能摆放方案数,对 $1000000007\ (=1,000,000,007)$ 取模。输出末尾需换行。
说明/提示
## 部分分
本题设有部分分。
- 数据集 $1$:所有输入中,满足 $x_{i,j}\neq 0$ 的格子 $(i,j)$ 至少有 $17$ 个。通过数据集 $1$ 可得 $30$ 分。
- 数据集 $2$:无额外限制,通过数据集 $2$ 可得 $70$ 分。
## 样例说明 1
- 还未填写的整数为 $6,\ 11,\ 12,\ 13,\ 14,\ 24$ 共 $6$ 个。以下 $2$ 种方案满足条件。
14121527131116122202541963239181017245218
14131527121116122202541963239181017245218
## 样例说明 2
- 无论如何填写剩余的数都能满足条件。
## 样例说明 3
- 有时无论如何填写都无法满足条件。
## 样例说明 4
- 若所有整数的位置都已确定,也需输出方案数。
由 ChatGPT 4.1 翻译