树状数组
SC.ldxcaicai
我很菜=_=
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
BZOJ4765: 普通计算姬(dfs序+分块+树状数组)
4765: 普通计算姬 Time Limit: 30 Sec Memory Limit: 256 MB Description “奋战三星期,造台计算机”。小G响应号召,花了三小时造了台普通计算姬。普通计算姬比普通计算机要厉害一些。普通计算机能计算数列区间和,而普通计算姬能计算树中子树和。更具体地,小G的计算姬可以解决这么个问题:给定一棵n个节点的带权树,节点编号为1到n,以root为根,...原创 2018-06-30 22:05:55 · 522 阅读 · 0 评论 -
2018.11.08 NOIP模拟 班车(倍增+dfs+bit)
传送门对于每个点离线处理出向上走2i2^i2i班车到的最上面的点。然后每个询问(u,v)(u,v)(u,v)先把(u,v)(u,v)(u,v)倍增到刚好走不到lcalcalca的情况(有一个点如果就是lcalcalca直接特判)然后考虑最后把(u′,v′)(u',v')(u′,v′)连起来需要走一次还是两次。这个就是一个二维数点问题了。用dfsdfsd...原创 2018-11-08 23:37:05 · 278 阅读 · 0 评论 -
=bzoj1146: [CTSC2008]网络管理Network(整体二分+树剖)
传送门题意简述:给一棵树,支持单点修改,询问路径上两点间第kkk大值。思路:读懂题之后立马可以想到序列上带修区间kkk大数的整体二分做法,就是用一个bitbitbit来支持查值。那么这个题把树状数组放到树上用树链剖分维护一下即可。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;...原创 2019-01-13 16:47:37 · 286 阅读 · 0 评论 -
bzoj2441: [中山市选2011]小W的问题(树状数组+权值线段树)
传送门数据结构优化计数菜题。题意简述:给nnn个点问有多少个www型。www型的定义:由5个不同的点组成,满足x1&amp;lt;x2&amp;lt;x3&amp;lt;x4&amp;lt;x5,x3&amp;gt;x1&amp;gt;x2,x3&amp;gt;x5&amp;gt;x4x_1&amp;lt;x_2&amp;lt;x_3&原创 2019-01-21 12:12:37 · 499 阅读 · 1 评论 -
bzoj3333: 排队计划(逆序对+线段树)
传送门题意简述:给出一个序列,支持把ppp~nnn中所有小于等于apa_pap的‘扯出来排序之后再放回去,要求动态维护全局逆序对。思路:我们令fif_ifi表示第iii个位置之后比它大的数的个数,考虑到一个数在排一次序之后fif_ifi就变成了000,因此等价于每个位置最多修改一次,我们用树状数组先求出fif_ifi,然后上线段树来暴力修改即可。代码:#include<bi...原创 2019-01-22 19:45:51 · 359 阅读 · 0 评论 -
bzoj4448: [Scoi2015]情报传递(归并排序+树链剖分)
传送门题意简述:给一棵nnn个点的树,树上每个点表示一个情报员,一共有mmm天,每天会派发以下两种任务中的一个任务:1.搜集情报:指派T号情报员搜集情报2.传递情报:将一条情报从X号情报员传递给Y号情报员一个情报员在搜集情报之前危险度为000,从开始搜集的第二天起每天危险度加一。每条情报都有一个风险控制值C,现在要求对于每个任务,参与传递的情报员有多少个,其中对危险度大于这条情报的CC...原创 2019-03-26 14:31:46 · 253 阅读 · 0 评论 -
bzoj3594: [Scoi2014]方伯伯的玉米田(二维bit优化dp)
传送门题意咕咕咕思路:直接上二维bitbitbit优化dpdpdp即可。代码:#include<bits/stdc++.h>#define N 10005#define K 5005using namespace std;int n,k,a[N],bit[6005][605],len=0,ans=0;inline long long read(){ long...原创 2019-03-28 21:35:40 · 157 阅读 · 0 评论 -
bzoj3730: 震波(点分树+bit)
传送门点分树板题。。。然而并没有遇到卡常之类的事。。。对于分出来的每一层用两棵BitBitBit动态维护到自己距离不超过kkk的与到自己点分树父亲距离不超过kkk的点数。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rlen=1<<18|1;in...原创 2019-06-26 17:14:07 · 212 阅读 · 0 评论 -
bzoj2434: [Noi2011]阿狸的打字机(ac自动机+dfs序+bit)
传送门题意:有一个打字机,有三种操作:打一个小写字母删去最近打的一个小写字母将打印当前的字符串现在多组询问,每次问第xxx个被打印串在第yyy个被打印串中出现次数。思路:按照题意先建出trietrietrie树与failfailfail树。然后考虑第xxx个打印串在第yyy个被打印串中出现次数等于failfailfail树上面xxx子树中属于字符串yyy的节点数。于是我们离...原创 2019-07-13 22:13:55 · 163 阅读 · 0 评论 -
NOIp训练 红绿色盲ldxcaicai(bit套主席树)
传送门然而就是我把数颜色的数据加强了一下。。。数据范围:n,m≤200000,ai≤1000000n,m\le200000,a_i\le1000000n,m≤200000,ai≤1000000而且还可以强制在线。。。反正带修莫队是凉掉了。正解是bitbitbit套主席树。考虑用把每个位置上颜色出现的上一个位置作为下标插入到主席树中,然后答案就可以差分出来。再套上bitbitbit就...原创 2019-07-18 21:24:31 · 611 阅读 · 1 评论 -
NOIp训练 子串查找VII(树剖+ac自动机+dfs序+bit套主席树)
传送门题意:有一棵nnn个点的无根树,第iii个点上有一个字符串sis_isi作为编号和一个权值viv_ivi,现在有mmm次强制在线的询问/修改。询问:给出一个字符串SSS和一条路径(u,v)(u,v)(u,v),路径上iii点的贡献是sis_isi在SSS中出现次数*viv_ivi,问总贡献。时间复杂度:O(nlogn3),∑∣si∣,∑∣S∣,n,mO(nlogn^3),\s...原创 2019-07-17 19:36:24 · 336 阅读 · 0 评论 -
2018.11.05 NOIP模拟 相交(dfs序+bit)
传送门又TMTMTM考原题真是服。考虑到两条路径相交一定满足某一条的lcalcalca在另外一条路径上面。于是分开统计有多少个lcalcalca在当前路径上面以及有多少个路径经过了当前的lcalcalca,再扣去lcalcalca重复的情况就行了。代码...原创 2018-11-05 20:02:04 · 185 阅读 · 0 评论 -
2018.10.24 NOIP模拟 小 C 的宿舍(分治)
传送门分治妙题。由于用了分治的方法,我们只用考虑左区间对右区间的贡献以及右区间对左区间的贡献。可以发现如果从中点开始向两边递推最小值并用这个区间最小值来推式子是可以推出右/左区间的所有点对左/右区间的某个点的贡献是满足一个偏序关系的。于是用一种可以支持删除查询的数据结构偷懒用了bit来维护就行了。代码...原创 2018-10-24 20:16:57 · 282 阅读 · 0 评论 -
2018.10.29 bzoj3718: [PA2014]Parking(树状数组)
传送门显然只用判断两个会相交的车会不会卡住就行了。直接树状数组维护前缀最大值就行了。代码:#include&lt;bits/stdc++.h&gt;using namespace std;const int N=5e4+5;struct Matrix{int x1,x2,w,id;}a1[N],a2[N];int n,T,W,pos[N],bit[N];inline int lo...原创 2018-10-29 16:49:36 · 265 阅读 · 0 评论 -
洛谷P2617 Dynamic Rankings(带修主席树)
P2617 Dynamic Rankings 题目描述 给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是多少(1≤k≤j-i+1),并且,你可以改变一些a[i]的值,改变后,程序还能针对改变后的a继续回答上面的问题。你需要编一个这样的程序,从输入文件中读入序列a,然后...原创 2018-07-01 11:05:44 · 562 阅读 · 0 评论 -
BZOJ3295: [Cqoi2011]动态逆序对(带修主席树)
3295: [Cqoi2011]动态逆序对 **Time Limit: 10 Sec Memory Limit: 128 MB Description 对于序列A,它的逆序对数定义为满足i&amp;amp;lt;ji&amp;amp;lt;ji(1,5,3,4,2)(1,3,4,2)(3,4,2)(3,2)(3)(1,5,3,4,2)(1,3,4,2)(3,4,2)(3,2)(3)(1,5,3,4,2)...原创 2018-07-01 13:44:30 · 497 阅读 · 0 评论 -
2018.07.08 hdu1394 Minimum Inversion Number(线段树)
Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Description The inversion number of a given number sequence a1, a2, …, an is the...原创 2018-07-08 10:22:58 · 313 阅读 · 0 评论 -
2018.10.02 bzoj2738: 矩阵乘法(整体二分)
传送门整体二分经典题。直接整体二分第k大,用二维树状数组检验就行了。代码:#include<bits/stdc++.h>#define N 505#define Q 60005using namespace std;int n,m,a[N][N],val[N*N],bit[N][N],tot=0,ans[Q],cnt=0;struct Query{int x1,y1...原创 2018-10-02 22:36:00 · 241 阅读 · 0 评论 -
2018.10.05 NOIP模拟 相遇(dfs序+lca)
描述豪哥生活在一个n个点的树形城市里面,每一天都要走来走去。虽然走的是比较的多,但是豪哥在这个城市里面的朋友并不是很多。当某一天,猴哥给他展现了一下大佬风范之后,豪哥决定要获得一些交往机会来提升交往能力。豪哥现在已经物色上了一条友,打算和它(豪哥并不让吃瓜群众知道性别)交往。豪哥现在spy了一下这个人的所有行程起点和终点,豪哥打算从终点开始走到起点与其相遇。但是豪哥是想找话题的,他想知道以前有...原创 2018-10-11 23:46:41 · 341 阅读 · 0 评论 -
2018.09.28 bzoj3688: 折线统计(dp+树状数组)
传送门简单树状数组优化dp。注意到k很小提示我们搜(d)(d)(d)索(p)(p)(p)。先按第一维排序。用f[i][j][0/1]f[i][j][0/1]f[i][j][0/1]表示第i个点结尾,有j段单调区间,最后一段单调递增/递减的方案数。然后有f[i][j][0]=∑f[i′][j][0]+∑f[i′′][j−1][1]f[i][j][0]=\sum f[i&#x27;...原创 2018-09-28 13:57:43 · 324 阅读 · 0 评论 -
2018.10.08 NOIP模拟 栅栏(树状数组+rand)
3.1 description小 Z 决定要去 AK PION 2018, 不过在这之前,他要先把家里的牛给养大。小 Z 家里的牛棚是一个 n ∗ m 的网格,牛均匀地分布在这些网格中。一开始小 Z 的牛都很小,习性也都相近,所以牛棚中没有栅栏。不过随着时间的推移,不同品种的牛的不同习性逐渐暴露出来,这时候小 Z 会建造栅栏来把不同习性的牛给分隔开。不过,时间久了之后,牛之间也需要交流感...原创 2018-10-11 23:48:43 · 250 阅读 · 0 评论 -
2018.10.20 NOIP模拟 巧克力(trie树+dfs序+树状数组)
传送门好题啊。考虑前面的32分,直接维护后缀trietrietrie树就行了。如果#号不在字符串首?只需要维护第一个#前面的字符串和最后一个#后面的字符串。分开用两棵trie树并且维护第一棵树上当前点到根的路径上的所有点在第二棵树上的对应点。于是支持对子树求和、对到根的一条链求和两种查询就行了用dfs序+树状数组差分来支持这些操作.代码...原创 2018-10-20 16:48:05 · 223 阅读 · 0 评论 -
2018.10.23 NOIP模拟 行星通道计划(bit)
传送门卡常题。成功卡掉了作死写树套树的zxy。然而对我的二维bit无能为力。直接维护两棵bit。bit1[i][j]bit1[i][j]bit1[i][j]表示左端点小于等于iii,右端点小于等于jjj的区间总数。bit2[i][j]bit2[i][j]bit2[i][j]表示左端点大于等于iii,右端点大于等于jjj的区间总数。然后简单容斥一下就行了。然后考试的时候sb了开了三棵...原创 2018-10-23 16:43:02 · 200 阅读 · 0 评论 -
2018.10.25 bzo1227: [SDOI2009]虔诚的墓主人(组合数学+扫描线+bit)
传送门有点难调啊。其实是我自己sb了不过交上去1A1A1A还是平衡了一下心态。所以这道题怎么做呢?我们考虑对于一个点(x,y)(x,y)(x,y)如果这个点成为中心,正左/右/上/下分别有l/r/u/d/l/r/u/d/l/r/u/d/棵树,那么对于这个点Ans=(lk)∗(rk)∗(uk)∗(dk)Ans=\binom {l} {k}*\binom {r} {k}*\binom {u} ...原创 2018-10-25 21:52:54 · 183 阅读 · 0 评论 -
CSP-S模拟 火神的鱼(线段树)
传送门考虑到每只鱼只会进网出网一次,于是直接建四棵线段树维护鱼的状态并建一棵树状数组维护答案即可。注意有多组数据代码:#include<bits/stdc++.h>#define ri register intusing namespace std;const int rlen=1<<18|1;inline char gc(){ static char b...原创 2019-07-25 18:18:00 · 361 阅读 · 0 评论
分享