
树状数组
gigo_64
莫看,莫看,这不是真实的我(七海脸)
溜了溜了
展开
-
【洛谷5069】纵使日薄西山【set】【树状数组】
传送门最nb的就是这种算法简单思维困难的题。题目说,选最大,将左中右三个一起减少。使用瞪眼法你要发现一个性质:修改一个数,那左中右的相对大小不变。所以它左右的数不会被修改,永远不会。因为其它数最多会使它们减少。也就是说,我们要维护的其实是所有会被操作的数的和。哪些数会被操作呢。数列问题要考虑单调区间。对于一个单调区间,从最高的那个点开始,我们会处理第一个,第三个,第...原创 2019-10-28 15:04:34 · 222 阅读 · 0 评论 -
【NOI2011】阿狸的打字机【AC自动机】【离线】【树状数组】
好题啊好题这道题题意很清楚,做起来很毒瘤。首先我们应该可以看出这是一个多模式串多文本串匹配问题,所以我们往自动机上面想。支持加入点,删点,记录打印标记,最后查询答案。删点无非就是几个father,然后回去。打印标记就是记录这次打印在AC自动机的哪个节点发生的。然后给每个自动机节点记录有哪些打印是发生在这个结点的。我开了个vector来记。因为问题很多,一个一个做会出事,所以...原创 2019-10-18 10:11:13 · 179 阅读 · 0 评论 -
【整体二分】bzoj2738矩阵乘法
然而传送门并不是去bzoj的ouo求子矩阵第k小,无修改。首先将矩阵按照数字大小排序。我们对所有询问二分答案,将答案以下的数插入树状数组。然后查询。左右分开。小心变量名冲突。#include<bits/stdc++.h>using namespace std;#define in read()int in{ int cnt=0,f=1;char ch=0;...原创 2019-07-31 11:40:24 · 185 阅读 · 0 评论 -
【整体二分】
写这篇博客实属迫不得已,因为我每次都要搞忘什么是整体二分QAQ对于区间查第k大之类的答案,我们除了cdq,树套树之外,还可以使用整体二分。整体二分使用二分答案,将所有询问和修改操作一起处理。一般使用四个参数l,r,ql,qr表示当前答案的左右区间,和当前处理询问的左右区间范围。对于mid这个答案,我们只需根据题意将一部分的修改操作执行(当然按照顺序),并查询答案。如果答案不符合...原创 2019-07-31 10:44:22 · 132 阅读 · 0 评论 -
最大数【JSOI2008】【树状数组】
传送门:https://www.luogu.org/problemnew/show/P1198一道变式树状数组区别是从末尾开始建点其他操作没有变差不多就是这样,,很水的一道题上代码#include<bits/stdc++.h>#define in read()using namespace std;int in{ int cnt=0,f=1;ch...原创 2018-12-15 15:39:57 · 186 阅读 · 0 评论 -
计数问题【JSOI2009】【树状数组三维单修区查】
传送门:https://www.luogu.org/problemnew/show/P4054数据很小,支持开三维三维分别是横纵坐标和权值这样每次维护的时候只需要在d[x][y][key]++就行或者--。基本也是模板,,注意一下差分那个地方,,经典的总-左-上+左上#include<bits/stdc++.h>#define in read()using n...原创 2018-12-15 14:54:20 · 156 阅读 · 0 评论 -
修改序列【树状数组区修单查模板】
传送门:http://oi.cdshishi.net:8000/problempage.php?problem_id=2138水题++上代码#include<bits/stdc++.h>#define in read()using namespace std;int in{ int cnt=0,f=1;char ch=0; while(!isdigit(ch)){...原创 2018-12-15 14:50:27 · 115 阅读 · 0 评论 -
树状数组
我和你徜徉在一片花海之中,你的笑颜化为一缕清风拂过我的心,莹莹目光饱含深情与温柔。你指着前面问,“gigo,那是什么?”我望了望,笑着回到,“那是一片树状数组哇。” ...原创 2018-12-11 22:28:32 · 148 阅读 · 0 评论 -
树状数组++
区间修改,区间查询差分还是很重要的思想。我们设这个很正常就是差分对吧然后很显然但我们的目标是所以所以我们把两层循环简化成了一层循环但我们的目标是没有循环。所以再进行简化明显这个时候n+1已经是已知的,那我们只需要维护di和i*di两个树状数组就可以啦上代码#include<bits/stdc++.h>#define in read...原创 2018-12-15 14:01:37 · 178 阅读 · 0 评论 -
清点人数【树状数组单修前缀和模板】
题目传送门:http://oi.cdshishi.net:8000/problempage.php?problem_id=3860太水了,,,比模板还水,,模板好歹要带一个r-(l-1),这个直接查前缀和,,太水了#include<bits/stdc++.h>#define in read()using namespace std;int in{ int cnt=0,...原创 2018-12-15 14:47:14 · 373 阅读 · 0 评论