Gracekite's Homepage

Back

构造题?{% label 人类智慧题 red %} 挺震惊的,我居然想到了怎么构造它

题意#

  • 棋盘上有到的值
  • 可以走前后左右四个方向,可以走八个方向
  • 和都会挑他们能走到的最小的格子跳过去
  • 如果当前他们跳不到任何格子,可以花跳过去
  • 如果棋盘都被跳过了,就结束

给你棋盘大小,要求你构造一个棋盘,使花的钱比少,若果没有,输。

思路#

我们手模一些棋盘可以发现

当时一定无解。因为棋盘任意可达。

当时,我们可以通过构造一组棋盘使得最后必须使用跳过去。比如我构造的是

在最后一步必须从跳到而消耗,而不用

当时,我们可以发现只要上下左右中有比当前位置值大的位置,和一定会往那里走,因此我们在棋盘基础上,向下向右扩展边长,最后把和全部引导到棋盘中的位置即可 即我们可以构造出这样的棋盘

也就是

再如

其中我们看到蓝色部分需要调换顺序。 这样就完成了构造。

AC Code#

CF1333E-Road to 1600题解
https://betteroier.github.io/blog/cf1333e-road-to-1600%E9%A2%98%E8%A7%A3
Author Yuxuan Zheng
Published at August 9, 2023