CF1333E-Road to 1600题解
构造题? 人类智慧题
挺震惊的,我居然想到了怎么构造它
题意
- 棋盘上有$1$到$N^2$的值
- $\mathrm{Rook}$可以走前后左右四个方向,$\mathrm{Queen}$可以走八个方向
- $\mathrm{Rook}$和$\mathrm{Queen}$都会挑他们能走到的最小的格子跳过去
- 如果当前他们跳不到任何格子,可以花$1 \mathrm{vun}$跳过去
- 如果棋盘都被跳过了,就结束
给你棋盘大小$N \times N$,要求你构造一个棋盘,使$\mathrm{Rook}$花的钱比$\mathrm{Queen}$少,若果没有,输$-1$。
思路
我们手模一些棋盘可以发现
当$N\le2$时一定无解。因为棋盘任意可达。
当$N = 3$时,我们可以通过构造一组$3 \times 3$棋盘使得$\mathrm{Queen}$最后必须使用$1 \mathrm{vun}$跳过去。比如我构造的是
$$
\begin{matrix}8&7&6 \ 5&1&2 \ 4&9&3\end{matrix}
$$
$\mathrm{Queen}$在最后一步必须从$8$跳到$9$而消耗$1 \mathrm{vun}$,而$\mathrm{Rook}$不用
当$N>3$时,我们可以发现只要上下左右中有比当前位置值大$1$的位置,$\mathrm{Rook}$和$\mathrm{Queen}$一定会往那里走,因此我们在$3 \times 3$棋盘基础上,向下向右扩展边长,最后把$\mathrm{Rook}$和$\mathrm{Queen}$全部引导到$3 \times 3$棋盘中$1$的位置即可
即我们可以构造出这样的$4 \times 4$棋盘
$$
\begin{matrix}8+7&7+7&6+7&{\color{blue}{6}} \ 5+7&1+7&2+7&{\color{blue}{7}} \ 4+7&9+7&3+7&{\color{red}{5}} \ {\color{red}{1}}&{\color{red}{2}}&{\color{red}{3}}&{\color{red}{4}}\end{matrix}
$$
也就是
$$
\begin{matrix}15&14&13&{\color{blue}{6}} \ 12&8&9&{\color{blue}{7}} \ 11&16&10&{\color{red}{5}} \ {\color{red}{1}}&{\color{red}{2}}&{\color{red}{3}}&{\color{red}{4}}\end{matrix}
$$
再如$5 \times 5$
$$
\begin{matrix}24&23&22&{\color{blue}{15}}&{\color{red}{1}} \
21&17&18&{\color{blue}{16}}&{\color{red}{2}} \
20&25&19&{\color{red}{14}}&{\color{red}{3}} \
{\color{red}{10}}&{\color{red}{11}}&{\color{red}{12}}&{\color{red}{13}}&{\color{red}{4}} \
{\color{red}{9}}&{\color{red}{8}}&{\color{red}{7}}&{\color{red}{6}}&{\color{red}{5}}\end{matrix}
$$
其中我们看到蓝色部分需要调换顺序。
这样就完成了构造。
AC Code
1 |
|