每日总结725

题意

给定一大小为 \(n\) 的方阵,维护 \(6\) 种操作:

  1. 行向右滚动
  2. 行向左滚动
  3. 列向下滚动
  4. 列向上滚动
  5. 行取逆排列
  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\) 然后扔数组里排个序,填上去。

感觉是橙题。

代码

这写不出来可以去念一下普及基础班。

posted @ 2025-07-25 19:41  Infter  阅读(14)  评论(0)    收藏  举报