码迷,mamicode.com
首页 >  
搜索关键字:前缀和    ( 2330个结果
BZOJ 3626 LCA(离线+树链剖分)
首先注意到这样一个事实。 树上两个点(u,v)的LCA的深度,可以转化为先将u到根路径点权都加1,然后求v到根路径上的总点权值。 并且该题支持离线。那么我们可以把一个区间询问拆成两个前缀和形式的询问。 现在问题就变成了求[1,r]和x的LCA深度之和。实际上就是把[1,r]到根路径点权点1,然后求x ...
分类:其他好文   时间:2017-05-04 18:29:37    阅读次数:176
CSU 1804: 有向无环图(拓扑排序)
http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1804 题意:…… 思路:对于某条路径,在遍历到某个点的时候,之前遍历过的点都可以到达它,因此在这个时候对答案的贡献就是∑(a1 + a2 + a3 + ... + ai) * bv,其中a是之前 ...
分类:编程语言   时间:2017-05-03 23:59:34    阅读次数:348
DOBRI
题目描述 给出一个包含N个整数的序列A,定义这个序列A的前缀和数组为SUM数组 ,当SUM数组中的第i个元素等于在i前面的三个元素的和,那么第i个元素就称为GOOD。 那么这个SUM数组中包含多少个GOOD 元素? 输入 第一行整数T表示数据组数(1<=T<=10) 每组数据以下格式: 输入的第一行 ...
分类:其他好文   时间:2017-05-02 21:10:03    阅读次数:109
bzoj2006 [NOI2010]超级钢琴
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2006 【题解】 思路巧妙啊! 前置技能:序列和可以转化成前缀和的形式,那么前缀和左端点固定了右端点就是区间找最大值了。 记录五元组(from, l, r, pos, val)表示从from开始 ...
分类:其他好文   时间:2017-05-01 21:02:29    阅读次数:232
[BZOJ2006][NOI2010]超级钢琴
在和yjj大神的讨论下做了出来。。。对于每个点作为左段点的区间"们",找到价值最大的那个,删掉它,再在剩下的里面找最大的。 最大区间我们可以预处理出前缀和s[i],因为左端点已确定,所以只要找s[i]最大的且符合长度限制的i即可,静态的区间最大有很多算法,反正我写了个线段树~\(≧▽≦)/~啦啦啦。 ...
分类:其他好文   时间:2017-05-01 13:38:50    阅读次数:163
(ST表+二分+前缀和)CSU 1879 - Hack Protection
题意: 给定一个序列,求异或和与按位与和相同的区间有几个。 异或和:n个数异或起来。按位与和类似。 分析: 这才是神题,基础算法大杂烩。 问大佬这题的时候,人家只说很不难啊。。 只能说自己太菜。 由于询问区间个数,自然要快速知道某一个区间的异或和与按位与和。 异或和很简单,利用他的性质,直接求前缀和 ...
分类:其他好文   时间:2017-04-30 18:42:08    阅读次数:231
kmp算法详解
1 #include//***28&&16行相当于递归算法****** 2 #include 3 #include 4 using namespace std; 5 const int MAXN=1000001; 6 char a[MAXN],b[MAXN]; 7 int la,lb; 8 int ... ...
分类:编程语言   时间:2017-04-30 11:00:00    阅读次数:163
BZOJ3065 带插入区间K小值
3065: 带插入区间K小值 Description 从前有n只跳蚤排成一行做早操,每只跳蚤都有自己的一个弹跳力a[i]。跳蚤国王看着这些跳蚤国欣欣向荣的情景,感到非常高兴。这时跳蚤国王决定理性愉悦一下,查询区间k小值。他每次向它的随从伏特提出这样的问题: 从左往右第x个到第y个跳蚤中,a[i]第k ...
分类:其他好文   时间:2017-04-29 18:51:01    阅读次数:213
树状数组
这是一种实用并且代码极短的高级数据结构。 能在O(lgn)内完成修改,和询问。解决了普通数组的询问长,前缀和的修改长的问题。 它提供两种操作: 将A[i]叫上D; 求出A[i]的前缀和。 那么怎么实现呢? 我们新增一个数组c[],其中c[i]=A[i-2^k+1]+……+A[i](k为i在二进制形式 ...
分类:编程语言   时间:2017-04-29 11:54:27    阅读次数:160
BZOJ 4867 分块+神tm卡常
思路: 注意到len<=10 按照权值max-min<=sqrt(n)*len 分块 记一下前缀和 每修改sqrt(n)次以后重新分块 修改的时候整块打标记 两边重构 (这题常数卡得要死 找同学要来fread才过) 修改的时候整块打标记 两边重构 (这题常数卡得要死 找同学要来fread才过) 查询 ...
分类:其他好文   时间:2017-04-26 13:10:52    阅读次数:316
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!