给定一个$n\times n$的矩阵,支持单点修改,查询子矩阵最大值和子矩阵最小值。
链接
题解
经典的二维带修RMQ问题。
一个暴力的思想是建$500$棵线段树,对于修改就在对应的线段树上修改,对于查询的时候就一行一行的查询,每一次把答案与之前的答案合并一下就好了qwq。
这样子做的时间复杂度是$O(qn\log n)$,不会TLE,但是跑的极慢,在测的时候跑了$1070$ms,没有树套树跑的快……
代码
1 |
|
技不如人,被吊打
给定一个$n\times n$的矩阵,支持单点修改,查询子矩阵最大值和子矩阵最小值。
经典的二维带修RMQ问题。
一个暴力的思想是建$500$棵线段树,对于修改就在对应的线段树上修改,对于查询的时候就一行一行的查询,每一次把答案与之前的答案合并一下就好了qwq。
这样子做的时间复杂度是$O(qn\log n)$,不会TLE,但是跑的极慢,在测的时候跑了$1070$ms,没有树套树跑的快……
1 | #include<bits/stdc++.h> |