题目转换成,每个水龙头在横坐标方向上覆盖的长度区间,转换后的问题就有点像会场安排问题了,然后接下来选的方案依据贪心,我们队这些个区间进行排序,依照区间的左端点按从小到大排序,然后从左往右选取,条件是当前区间的左端点在覆盖范围内,又端点最远。如果一次循环覆盖范围没有加大,就证明不能覆盖。 1 #inc...
分类:
其他好文 时间:
2014-08-31 17:00:51
阅读次数:
198
题意:
给出一串括号
给出一些询问,问某个区间[l,r]内的能合法匹配的括号数有多少个
分析:
我们可以实现处理两个数组
sum[i] 1....i中已经能匹配的右括号的数目
left[i] 1....i中还不能匹配的左括号数目
这两个数组可以很简单的扫描一遍动态维护得出来
我们可以先求前缀和,即
1...m中有多少能匹配的右括号sum[m]
则,我们可以得到s...
分类:
其他好文 时间:
2014-08-31 15:54:31
阅读次数:
262
题目链接:点击打开链接
每个点都是最大值,把一整个序列和都压缩在一个点里。
#include
#include
#include
#include
#include
using namespace std;
#define N 100005
#define Lson(x) (x<<1)
#define Rson(x) (x<<1|1)
#define L(x) tre...
分类:
其他好文 时间:
2014-08-31 14:33:31
阅读次数:
169
题目来源:URAL 1019. Line Painting
题意:求最长的一段全部为白色的区间
思路:线段树成段更新 区间合并 离散化 这里对应的是一段区间 所以每次不是m+1 而是 l m 和 m r 了 另外我加上了0 和 10^9 这两个点
每一段区间(l, r)我记录的是l和r之间有多少条线段
#include
#include
#include
using namesp...
分类:
其他好文 时间:
2014-08-31 14:31:41
阅读次数:
197
题目链接:Codeforces 461C Appleman and a Sheet of Paper
题目大意:就是一个叠被子的过程,穿插着询问一段区间上被子的单位厚度。
解题思路:用前缀和数组模拟即可。因为对于折超过一半的处理为将令一半叠上来,所以需要变量记录当前被子的正反状态。处理好下标关系即可。
#include
#include
#include
using name...
分类:
移动开发 时间:
2014-08-31 13:17:51
阅读次数:
219
题目大意:
有一棵树,对这个树有两种操作:1:表示为(1 x val),在编号为x的节点上加上val,然后给x节点的每个儿子加上- val,再给每个儿子的儿子加上-(- val),一直加到没有儿子为止。2:表示为(2 x)查询x节点上的值。
做法:
由于每次修改操作修改的并不是一个值,而是很多值,那我们将该题抽象成区间修改,点查询的问题。那怎么抽象呢?可以明白的是,每次操作虽然有加有减,但是...
分类:
其他好文 时间:
2014-08-31 09:16:01
阅读次数:
235
还是五月湘潭赛的题目,当时就是因为我坑。。。连个银牌都没拿到,擦。这个题目枚举区间是不可能的,明显是要考虑每个数对全局的影响,即找到每个数最左和最右能满足是最大的位置 以及 最小的时候,相乘即为该数字影响的区间总数。当时想到的是用线段树,建树的时候求出最大和最小值,然后在每个数往里面搜索,比赛的时候...
分类:
其他好文 时间:
2014-08-31 09:12:40
阅读次数:
417
经常由于磁盘空间不足的原因,需要删除旧文件,因此希望有一个函数,能够查找到某个时间点之前的文件,并删除之。用newLISP来实现的话,需要类似这样的功能:(FILE:locate-modified-file file-path start-time end-time)start-time指的是修改时间的开始, end-time指的是修改时间的结束,按照习惯,这是一个左闭右开区间: [start-t...
分类:
其他好文 时间:
2014-08-31 02:49:00
阅读次数:
239
求给定整数数据中的第i小的数如果数据量很大,不能一次读入内存,可以将数据分区间储存。具体而言,就是讲数据分为...-2^20~-1,0~2^20-1, 2^20~2*2^20-1,2*2^20~3*2^20-1....并统计每个区间有多少个数据。这样就可以判断第i小的数在哪个区间。并且可以判断它在该...
分类:
其他好文 时间:
2014-08-30 23:03:40
阅读次数:
242
题目链接:
huangjing
题意:
给n个数,然后有两种操作。
【1】Q a b 询问a到b区间的和。
【2】C a b c将区间a到b的值都增加c。
思路:
线段树成段更新的入门题目。。学会使用lazy即可。还需要注意的是,lazy的时候更改是累加,而不是直接修改。。有可能连续几次进行修改操作。。注意这一点就好了。。。
题目:
Language:
De...
分类:
其他好文 时间:
2014-08-30 21:46:10
阅读次数:
298