上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 21 下一页
摘要: 题目链接 题意:求一个序列的最大的(区间最小值*区间和) 线段树做法:用单调栈求出每个数两边比它大的左右边界,然后用线段树求出每段区间的和sum、最小前缀lsum、最小后缀rsum,枚举每个数a[i],设以a[i]为最小值的区间为[l,r] 若a[i]>0,则最优解就是a[i]*([l,r]的区间和 阅读全文
posted @ 2019-04-23 19:02 jrltx 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 题目链接 C - Flippy Sequence(组合数学+分类讨论) 两区间异或一下,分段考虑,如果全为0则任选两相同区间,答案为$C_{n+1}^{2}=\frac{n(n+1)}{2}$,只有一段连续的1则两区间有一个公共边界,另外两个边界分别为连续1的左右边界,答案为$2C_{n-1}^{1 阅读全文
posted @ 2019-04-23 17:02 jrltx 阅读(1855) 评论(0) 推荐(1) 编辑
摘要: 题目链接 题意:给定一个n*m的矩阵,可以选择至多两个子矩阵将其反转,求能形成多少种不同的矩阵。 任选一个矩阵有$C_{n+1}^{2}C_{m+1}^{2}$种方法,任选两个不同的矩阵有$C_{C_{n+1}^{2}C_{m+1}^{2}}^{2}$种方法,但其中有重复的,需要去重。 重复的情况一 阅读全文
posted @ 2019-04-22 21:58 jrltx 阅读(469) 评论(0) 推荐(0) 编辑
摘要: 题目链接 静态区间逆序对数查询,这道题用线段树貌似不好做,可以把区间分成$\sqrt n$块,预处理出两个数组:$sum[i][j]$和$inv[i][j]$,$sum[i][j]$表示前i个块中小于等于j的数的个数,$inv[i][j]$表示第i块与第j块之间的逆序对数,递推搞一下就行。查询的时候 阅读全文
posted @ 2019-04-13 13:05 jrltx 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题目链接 思路和bzoj2141差不多,不过这道题的数据更强一些,线段树套treapT了,树状数组套treap卡过~~ 阅读全文
posted @ 2019-04-12 21:18 jrltx 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题目链接 交换两个数的位置,只有位于两个数之间的部分会受到影响,因此只需要考虑两个数之间有多少数对a[l]和a[r]产生的贡献发生了变化即可。 感觉像是个带修改的二维偏序问题。(修改点$(x,y)$的值,维护和查询位于$(x_1,y_1)$与$(x_2,y_2)$之间的点的个数) 还有理论上能够AC 阅读全文
posted @ 2019-04-12 16:01 jrltx 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 题目链接 区间线段树套treap,空间复杂度$O(nlogn)$,时间复杂度除了查询区间k大是$O(log^3n)$以外都是$O(log^2n)$的。 (据说线段树套线段树、树状数组套线段树也能过?) 阅读全文
posted @ 2019-04-11 20:00 jrltx 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 题目链接 treap及树状数组模板题。 treap版: 树状数组版: 阅读全文
posted @ 2019-04-11 14:51 jrltx 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题目链接 权值线段树套区间线段树,权值线段树的每个结点存储该结点所表示的区间范围内的数在各个区间的分布情况,查询时在权值线段树上二分即可。复杂度$O(nlog^2n)$ 注意区间线段树需要动态开点,并且标记要永久化,否则会TLE。 另外就是sum可能会爆int,需要用long long存储。 阅读全文
posted @ 2019-04-10 19:45 jrltx 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题目链接 对每个结点建立两棵线段树,一棵记录该结点的子树下每种颜色对应的最小深度,另一棵记录子树下的每个深度有多少结点(每种颜色的结点只保留最浅的深度即可),自底而上令父节点继承子结点的线段树,如果合并两棵颜色线段树时发现某种颜色重复,则在深度线段树上把较深的深度对应的位置-1。 注意由于强制在线, 阅读全文
posted @ 2019-04-09 15:37 jrltx 阅读(444) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 21 下一页