P9326 Palindromic Poster 题解

· · 题解

(upd on 2025.1.20,修改了部分特殊点的做法。)

1. 题目解释

求一个有 r 行回文字符串和 c 列回文字符串的 n\times m 字符矩阵。

2. 思路

(一道规律题让我调吐了)

考虑对 rc 分类讨论。

Part 1

r=0,c=0 时。

只需有 a_{i,j} 等于第 (i+j-1)\bmod26 个字母即可,证明比较显然。

举例:n=3,m=4,r=0,c=0

abcd
bcde
cdef

Part 2

r=0,c=m 时。

只需有 a_{i,j} 等于第 i 个字母即可,证明也不难。

举例:n=3,m=4,r=0,c=4

abcd
abcd
abcd

Part 3

r=0,0<c<m 时。

不难想到将 Part 1 的前 c 列填充同一字母,其余与 Part 1 相同。

举例:n=3,m=4,r=0,c=2

abcd
abde
abef

Part 4

r=n,c=0 时。

与 Part 2 原理相同,只是 nm 互换,rc 互换。

举例:n=3,m=4,r=3,c=0

aaaa
bbbb
cccc

Part 5

r=n,c=m 时。

只需填充同一种字符即可。

举例:n=3,r=4,r=3,c=4

aaaa
aaaa
aaaa

Part 6

r=n,0<c<m 时。

首先考虑不不合法的情况。

先给结论:当 2\mid m,2\nmid c 时不合法,原因待会再说。

给出其余情况的构造方式:

2\mid m,2\mid c 时,将 1\dfrac{c}{2} 列与 m-\dfrac{c}{2}+1m 列的字符全部赋为 a,将 2n 行的字符全部赋为 a,其余赋为 b

举例:n=3,m=4,r=3,c=2

abba
aaaa
aaaa

2\nmid m,2\mid c 时同理(只是 \dfrac{c}{2} 变为 \dfrac{c-1}{2})。

举例:n=3,m=3,r=3,c=2

aba
aaa
aaa

2\nmid m,2\nmid c 时只需将最中间一列赋为 a 也就一样了。

举例:n=3,m=3,r=3,c=1

bab
aaa
aaa

最后解释不合法构造的原因:由于 2\mid m,2\nmid c,故而我们需要将 c 列赋为 a,而一行的字符数量为偶数,假如它是回文的,那么 a 的数量也应该是偶数个,又 2\nmid c,因而不合法。

Part 7

0<r<n,c=0 时。

与 Part 3 原理相同。

Part 8

0<r<n,c=m 时。

与 Part 6 原理相同。

Part 9

0<r<n,0<c<m 时。

只需将前 r 行和前 c 列的字符全部赋为 a,其余赋为 b 即可。

举例:n=3,m=4,r=1,c=2

aaaa
aabb
aabb

Part 10

对于 nm 等于 2 时的一个特殊情况补充。

另外感谢 @tyr_04 帮忙指出。

n=2,c=0,r\ge26 时,使用上面的方法会出现如下情况:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bcedfghijklmnopqrstuvwxyzabcde

注意到第 26 列有两个 a

于是我们将下方修改为第 (i-1)\bmod25+2 个字母即可。

代码不放了,其实不难写。