每日总结725
题意
给定一大小为 \(n\) 的方阵,维护 \(6\) 种操作:
- 行向右滚动
- 行向左滚动
- 列向下滚动
- 列向上滚动
- 行取逆排列
- 列取逆排列
做法
如果只有前四个操作就是普及组题:记 \(d_x,d_y\) 表示行加上了 \(d_x\),列加上了 \(d_y\)。
我们发现这本质相当于:\(f(x,y)=(x+d_x \mod n, y + d_y \mod n)\)
我们不妨加上 \(a_{x,y}\) 于是做完了。
我们维护 \(f(x,y,a_{x,y})\)。
对于 \(5\) 操作等驾驭交换 \(x,a_{x,y}\)。\(6\) 操作同理。
然后对于每个 \((x,y,a_{x,y})\) 直接算出对应的 \(f\) 然后扔数组里排个序,填上去。
感觉是橙题。
代码
这写不出来可以去念一下普及基础班。

浙公网安备 33010602011771号