"题目链接" ~~各种zz错误。。简直要写疯~~ cpp / 19604kb 36292ms 朴素线段树:线段树上每个点维护O(k)个信息,区间合并时O(k^2),总O(mk^2logn) GG 考虑费用流:建一条n+1个点的链(点权设在边上,故需n+1个点),链上每个点和S、T连边,相邻点连边 这 ...
分类:
其他好文 时间:
2018-02-07 14:36:49
阅读次数:
177
给出若干闭合区间,合并所有重叠的部分。 样例 给出的区间列表 => 合并后的区间列表: [ [ [1, 3], [1, 6], [2, 6], => [8, 10], [8, 10], [15, 18] [15, 18] ] ] 挑战 O(n log n) 的时间和 O(1) 的额外空间。 /** ...
分类:
其他好文 时间:
2018-01-28 22:01:55
阅读次数:
330
hihoCoder 1636 Pangu and Stones 思路:区间dp. 状态:dp[i][j][k]表示i到j区间合并成k堆石子所需的最小花费。 初始状态:dp[i][j][j-i+1]=0 状态转移: 如果k等于1,dp[i][j][1]=min(dp[i][j][1],dp[i][k] ...
分类:
其他好文 时间:
2018-01-20 20:32:48
阅读次数:
182
题目描述 题解 Splay 由于有区间反转操作,因此考虑Splay。 考虑答案:缩完括号序列后剩下的一定是 $a$ 个')'+ $b$ 个'(',容易发现答案等于 $\lceil\frac a2\rceil+\lceil\frac b2\rceil$ 。 怎么维护:区间合并,对于每个节点维护子树缩完 ...
分类:
其他好文 时间:
2017-12-23 14:24:18
阅读次数:
143
要求断裂的数列之和的最大值,只需在断裂处的下标修改为一个足够负无穷大的值就可以用线段树维护 这道题数据还是弱了点,如果n和ai均取最大可能我这个程序早就爆ll了(4e4的时候炸了),毕竟本来想着用GCC的int128稳过却CE(我dev用着好好的) 本着死马当活马医的可贵精神直接改回ll碰碰运气,没 ...
分类:
其他好文 时间:
2017-12-09 12:10:21
阅读次数:
194
"原题" 左偏树裸题(也可以用dp做) 对于一段有连续性的不合法区间,把他们全都变成中位数显然是最好的。 假如我们要实现连续不下降,那么: 对于后一段区间的中位数比前一段的中位数小,那么把这两段区间合并,全部修改为这两段区间的中位数,否则的话就不用管。 假如我们要实现连续不上升,那么我们把小于号改为 ...
分类:
其他好文 时间:
2017-11-26 12:44:16
阅读次数:
155
线段树/树状数组裸题,用splay写 splay也是基本操作pushup pushdown 话说我就是找不到全一点的模板,我自己写又全是bug,导致代码风格一直变来变去= = 关键是建树和区间操作(区间和,区间翻转,区间合并这几个写法都很难统一) #include<map> #include<set ...
分类:
其他好文 时间:
2017-10-31 12:46:14
阅读次数:
196
区间合并 链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1236 【题目描述】 给定 n 个闭区间 [ai; bi],其中i=1,2,...,n。任意两个相邻或相交的闭区间可以合并为一个闭区间。例如,[1;2] 和 [2;3] 可以合并为 [1; ...
分类:
其他好文 时间:
2017-10-29 16:45:17
阅读次数:
121
题意:一个值1到n的数组,一种(多次)操作把l到r的区间反转,然后放到数组尾部 题解:裸的splay,用区间合并和区间分割,反转用lazy标记+pushdown就好了 #include<bits/stdc++.h> #include<ext/rope> #define fi first #defin ...
分类:
其他好文 时间:
2017-10-28 23:51:20
阅读次数:
260
题目链接:https://vjudge.net/problem/HDU-1540 uring the War of Resistance Against Japan, tunnel warfare was carried out extensively in the vast areas of no ...
分类:
其他好文 时间:
2017-10-28 12:38:40
阅读次数:
208