摘要: >传送门< 题意:给n个操作,每次和 (1e9范围内)即往数组里面插所有 的所有数,求每次操作后的中位数思路:区间离散化然后二分答案,因为小于中位数的数字恰好有个,这显然具有单调性。那么问题就转化为如何求小于等于某个数x的数一共有多少个。 考虑以下两种情况:假设左端点小于等于x的区间一共有q个 如果 阅读全文
posted @ 2019-08-11 18:25 sparkyen 阅读(218) 评论(0) 推荐(0) 编辑
摘要: “离散化,就是把无限空间中有限的个体映射到有限的空间中去,以提高算法的时空效率。” 很多算法的复杂度与数据中的最大值有关,比如树状数组和纯用数组实现的一对一标记。时常会遇到这种情况:数据的范围非常大或者其中含有负数,但数据本身的个数并不是很多(远小于数据范围)。在这种情况下,如果每个数据元素的具体值 阅读全文
posted @ 2019-08-11 18:15 sparkyen 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 题意:给出由01组成的矩阵,求求全是1的次大子矩阵。 思路: 单调栈 全是1的最大子矩阵的变形,不能直接把所有的面积存起来然后排序取第二大的,因为次大子矩阵可能在最大子矩阵里面,比如: 1 0 0 1 1 1 1 1 1 有篇博主的代码细节处理的很好,由于矩阵每行的长度一致,则不必重复在数组末尾标记 阅读全文
posted @ 2019-08-11 17:47 sparkyen 阅读(146) 评论(0) 推荐(0) 编辑
摘要: >传送门< 题意:给你一个01矩阵,求出所有不可扩大的全为1的矩阵的个数 思路:比赛的时候想到了用单调栈,但是也只是想到了,并不知道怎么用,其实和之前求二维01矩阵中全为1的矩阵最大面积非常相像。 像到什么地步呢!!你想一个不能扩大的矩阵,也即是说不能向左右扩展,也不能向上扩展,那我们就用单调栈维护 阅读全文
posted @ 2019-08-11 17:38 sparkyen 阅读(128) 评论(0) 推荐(0) 编辑