求助站外题:ST 表
  • 板块学术版
  • 楼主AC_loveRealNewbie
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/10/12 20:12
  • 上次更新2023/11/2 14:15:29
查看原帖
求助站外题:ST 表
186472
AC_loveRealNewbie楼主2023/10/12 20:12

n×mn \times m 的方阵。

三种操作:

SUM 求一个矩阵的和

MAX 求一个矩阵的最大值

MIN 求一个矩阵的最小值

n,m≤800n, m \le 800

每个询问的较长边长度不超过较短边的两倍。

思路:

对于 SUM 操作,二维前缀和维护即可

对于 MAX 和 MIN 操作,最常规的方法是开一个四维数组 f[x][y][i][j] 表示以 (x, y)(x, \ y) 为左上角,长为 2i2^i,宽为 2j2^j 的矩形内部的最大值(还有最小值),但是这个东西会 MLE。

因为长不超过宽的二倍,我们考虑把矩形拆成两个正方形,用 f[x][y][i] 表示以 (x, y)(x, \ y) 为左上角,边长为 2i2^i 的正方形内部的最大值(还有最小值),这个东西就非常好不会 MLE,但是我写的这个代码似乎有点问题,没调出来到底是怎么回事。

代码在二楼

2023/10/12 20:12
加载中...