luogu#P15999. [ICPC 2020 NAC] Grid Guardian

[ICPC 2020 NAC] Grid Guardian

题目描述

爱丽丝有一个 n×mn \times m 的网格和一个 2×22 \times 2 的方块。她希望将她的方块放入网格中。放置时必须使方块与坐标轴对齐,并且恰好覆盖 44 个格子。

鲍勃想阻止爱丽丝这样做。为此,他在某些格子中放置障碍物。在鲍勃放置障碍物之后,网格中的所有 2×22 \times 2 子网格都应该至少包含一个障碍物。鲍勃希望最小化他放置障碍物的格子数量。

请帮助鲍勃统计在放置最少障碍物的前提下,他有多少种放置方式。输出这个数量对素数 pp 取模的结果。注意,答案不是最少障碍物的数量,而是鲍勃在放置最少障碍物时的方案数。例如,对于 2×22 \times 2 的网格(即 n=m=2n = m = 2),鲍勃只需要放置 11 个障碍物,但放置的方式有 44 种,因此这种情况下的答案为 44

输入格式

输入仅一行,包含三个空格分隔的整数 nn2n252 \le n \le 25)、mm2m1032 \le m \le 10^3)和 pp108p109+710^8 \le p \le 10^9 + 7pp 是素数),其中爱丽丝的网格大小为 n×mn \times mpp 是一个大素数模数。

输出格式

输出一个整数,表示鲍勃在 n×mn \times m 网格中放置最少障碍物以阻止爱丽丝放置她的 2×22 \times 2 方块的方案数。由于答案可能很大,请输出它对 pp 取模的结果。

4 4 999999937
79
5 5 100000037
1

提示

翻译由 DeepSeek V3.2 完成