题解:AT_arc226_c [ARC226C] Square Corner Packing

· · 题解

找规律题被猜出来了。

考虑都是奇数怎么做。以下是赛时思路。 先画一个 $5\times5$ 的。 找不到赛时截的图了,就这个: ``` #$$ # $$%% && %% &&@@ # @@# ``` 发现尽力了,那就看 $7\times7$,赛时画的。 ![](https://page.xo.je/aaron0919_public/7b2fb8114c352b565e3576e08274e717.png) 此时还看不出来什么,但是感觉很有规律,因此再画一个 $9\times9$ 的,还是赛时的图。 ![](https://page.xo.je/aaron0919_public/d9ff9bcf1718300b62606cb928210ebd.png) 此时做法已经呼之欲出了,每次可以剥掉最外面两层然后递归。 再思索一下 $h\not=w$ 怎么做,发现可以截出来一个 $h=w$ 的,剩下的用一奇一偶填就对了。 然后有一个非常有趣且简单的写法,对于两个都是奇数的情况,我们可以直接每次递归的时候把四个角填了,直到递归到 $h',w'<3$,剩下的可以有填就填。 具体来说应该是先填成左边的样子,然后有填就填就是右边的样子,也就是答案。 ``` #.......#.... #$$%%@@.#&&** ............. .$$%%@@$$&&** ..#...#...... @@#&&.#$$**&& ............. @@.&&**%%**&& ............. ==> %%**.**%%&&** ............. %%**&&.@@&&** ..#...#...... $$#.&&#@@**&& ............. $$@@%%$$.**&& #.......#.... #.@@%%$$#.... ``` [赛时实现。](https://atcoder.jp/contests/arc226/submissions/78258208)