摘要:
对于第一问, 简单的dp. f(i, j)表示以(i, j)为左上角的最大正方形, f(i, j) = min( f(i + 1, j), f(i, j + 1), f(i + 1, j + 1)) + 1 (假如(i, j)和右边和下边不冲突)第二问就是经典的悬线法解决最大子矩阵了, 维护悬线H[... 阅读全文
摘要:
最大子矩阵...悬线法..时间复杂度O(nm)悬线法就是记录一个H向上延伸的最大长度(悬线), L, R向左向右延伸的最大长度, 然后通过递推来得到.------------------------------------------------------------------#includeu... 阅读全文
摘要:
直接求逆序对就行了...时间复杂度O(nlogn)-------------------------------------------------------------------------#includeusing namespace std;#define idx(c) ((c) - 'A... 阅读全文
摘要:
处理出每个数下一个出现的位置, 然后按左端点排序回答询问、处理当前数去除的影响--------------------------------------------------------------------#includeusing namespace std;#define lowbit(... 阅读全文