1 条题解
-
0
自动搬运
来自洛谷,原作者为

ANIG
̴̴̴̳̦̗̤̳̟̭̫̲̳̦̗̤̳̟̭̫̲̳̦̗̤̳̟̭̫̲̍̄̆̑͑͑̈̅͐̔̊̍̄̆̑͑͑̈̅͐̔̊̍̄̆̑͑͑̈̅͐̔̊̚̚̚阿尼哥,啊你个,又糖又扔搬运于
2025-08-24 23:01:38,当前版本为作者最后更新于2025-05-03 20:59:39,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
首先可以发现人类可以轻松解决这个问题,但是完全不知道怎么写。
解的数量显然很多,看上去你随便构造一个都是对的。
可以发现,如果只有两个颜色,似乎更好构造一点,于是考虑先确定一个颜色。
要让剩余两个颜色很可能合法,则第一个颜色构成的图形要尽量规则。
把第一个颜色平移到右下角。可以感受到填成长方形似乎比较优。
于是考虑划定一个长方形区域,在这个区域内一层一层填。

可以发现,这三种区域看起来比较对。
如果矩形太小,可以通过平移,使得把第一种颜色的起点移到最左边或最上边,直到存在比较大的矩形。
在这些矩形中随便取一个,把第一种颜色填完,转化为两种颜色的问题。
以 比较小的颜色为起点 BFS,为了不把最后一种颜色围起来,可以优先扩距离最后一个颜色出发点最远的点,用优先队列维护。
这么做完后还是有很大的概率出错,于是我们考虑随机化。
每次随机一个颜色作为第一种颜色,扩展的时候如果有权重相同的随机选一个取出来。填的时候随机横着填或竖着填。
进行一些乱搞后可以通过。
- 1
信息
- ID
- 9476
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者