摘要: 题目链接 #解题思路 对顶栈的模板题。L和R的操作可以由对顶栈来实现,至于查询操作用一个前缀和数组和一个存最大值的数组来存就行了。 #代码 const int maxn = 1e6+10; stack<int> skl, skr; int pre[maxn], f[maxn] = {-114514} 阅读全文
posted @ 2020-07-16 21:56 shuitiangong 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 题目链接 #解题思路 对顶堆模板题,一个堆对应一半。 #代码 priority_queue<int, vector<int>, less<int> > l, clears1; priority_queue<int, vector<int>, greater<int> > r, clears2; ve 阅读全文
posted @ 2020-07-16 21:31 shuitiangong 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题目链接 #解题思路 进制转换的题很简单,这里主要是取余的操作值得一提。原来的数字表示的是$a_0\times k^ + a_1\times k^ + ... + a_n\times k^0$,这里在除x取余转成x进制的时候没必要先转成十进制,直接通过处理每一位表示的数来求余数即可。 #代码 int 阅读全文
posted @ 2020-07-16 16:49 shuitiangong 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题目链接 #解题思路 这题最简单的暴力就是枚举左上角和右下角,但是其实有个稍微好一点点的方法。我们可以枚举矩形一条边的边长,至于另一条边的边长,我们会发现,在不断往下延伸的过程中,增加了很多子矩阵,如果已经延伸的部分都是负数,那么可以全部舍去,从一个和为正数的子矩阵开始延伸。这样的话时间复杂度就降到 阅读全文
posted @ 2020-07-16 10:02 shuitiangong 阅读(139) 评论(0) 推荐(0) 编辑