Atcoder abc336

https://atcoder.jp/contests/abc336

F - Rotation Puzzle

h行w列, 数字$[1,hw]$每个出现一次

一次操作 选取$(h-1)\cdot(w-1)$的矩形 旋转180度

问是否能让20次操作内,所有数字 变成 从小到大 从左到右从上到下 的样子

1
2
1 2 3 4
5 6 7 8

h,w [3,8]

5s

1024mb

我的思路

如果单独考虑x的变化

从中线划分

那么左侧的x,在左侧矩形选择翻转时,它变为右侧,且和边界距离+1

那么右侧的x,在左侧矩形选择翻转时,它变为左侧,且和边界距离-1

感觉 有用但又没有用


另一个想法就是meet-in-middle + 暴力搜索, 因为一个操作立刻反向操作 等于没操作,所以除了首次操作 后续的操作都 3分叉,数据量看起来是能接受的

$3^{10}\cdot 8\cdot 8=3779136$

哎, 本来以为什么神奇性质题,结果无聊的meet-in-middle

题解

代码

总结

F: meet-in-middle 没啥难的