树状数组
里阿奴摩西
这个作者很懒,什么都没留下…
展开
-
[扫描线 树链剖分 树状数组] BZOJ2758 [SCOI2012]Blinker的噩梦
扫描线 一般扫描线的做法就是想象一根线向某个方向扫过,进入的进入,出去的出去,用一个set维护序列或是结合线段树,当然最恶心的就是加上计算几何但是落实到这题上就是各种鬼畜乱搞,只能膜大神省选前做难题的结果是——到处翻题解,程序越改越像“题意:平面上有n个多边形(凸包和圆)。任意两个多边形AB只有两种关系:(1)A包含B或者B包含A;(2)AB的公共面积为0。每个多边形有一个原创 2016-03-18 20:25:36 · 1457 阅读 · 0 评论 -
[区间GCD预处理 树状数组 离线] HDU 5869 Different GCD Subarray Query
首先确定一个右端点 向左做后缀gcd的值是不超过log的 因为gcd必然递减 每次至少除以2 那么可以对每个右端点预处理出来 然后要求区间不同的gcd个数 这里要用到1878: [SDOI2009]HH的项链的技巧 用树状数组离线处理 按右端点的顺序处理询问 令pos[x]等于x这个值出现的最靠右的位置 显然这里是对计算贡献最有利的 然后用树状数组维护下 对于某个位置 有多少个pos的取值原创 2017-02-01 22:26:46 · 377 阅读 · 0 评论 -
[广义后缀自动机 set启发式合并 || dfs序 树状数组 离线] BZOJ 2780 [Spoj]8093 Sevenk Love Oimaster
可以直接用[广义后缀自动机] BZOJ 3473 字符串 & BZOJ 3277 串 & Codeforces 204E #129 (Div. 1) E. Little Elephant and Stringsset启发式合并的方法 还有一种是离线做法 通过dfs序转化为一段区间内不同数字的数量 就是 [SDOI2009]HH的项链的经典做法啦#include<cstdio>#includ原创 2017-01-29 22:36:31 · 556 阅读 · 0 评论 -
[LCT 树状数组] HDU 5333 Undirected Graph
这个题跟 [LCT 主席树] BZOJ 3514 Codechef MARCH14 GERALD07加强版有异曲同工之妙 考虑询问按右端点排序 对于一条边 边的权值定义为较小的一端的编号 那么显然权值大的边更有利 对于每个右端点 我们加入所有新增的边 维护最大生成树 询问么 就是n-生成树中编号大于等于左端点 因为这样的边会把两个联通块连在一起#include<cstdio>#原创 2017-02-07 16:37:28 · 361 阅读 · 0 评论 -
[点分树 树状数组] BZOJ 3730 震波
线段树T成翔 只能用vector写BIT 痛苦的回忆啊思路不难想 先建出点分树 然后每个点对于他掌管的点的距离与权值建成BIT然后每次查询就是爬点分树这里有点注意往树上爬的时候不能中途break,不会因为有一个祖先爬不上去就终止,说不定有一个爷爷比爸爸还近#include#include#include#includeusing namespace std;原创 2016-12-25 12:06:55 · 552 阅读 · 0 评论 -
[dfs序 树状数组] BZOJ 1103 [POI2007]大都市meg
大水题据说树链剖分可暴力过?#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) re原创 2016-06-27 11:54:59 · 321 阅读 · 0 评论 -
[AC自动机 fail树 树状数组] BZOJ 2434 [NOI2011] 阿狸的打字机
PoPoQQQ:http://blog.csdn.net/popoqqq/article/details/41518097fail树不难想 看到两个条件马上想到树套树 汗后来发现可以离线 树状数组#include#include#include#includeusing namespace std;inline char nc(){ static char bu原创 2016-07-21 08:36:30 · 359 阅读 · 0 评论 -
[莫比乌斯反演 树状数组] BZOJ 3529 [Sdoi2014]数表
#include#include#include#includeusing namespace std;typedef pair abcd;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p原创 2016-07-08 20:26:58 · 313 阅读 · 0 评论 -
[树状数组 线段树] BZOJ 3333 排队计划
Po姐:http://blog.csdn.net/popoqqq/article/details/40392219?utm_source=tuicool&utm_medium=referral#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static原创 2016-06-29 16:27:28 · 340 阅读 · 0 评论 -
[树 树状数组] SRM659 1100pts
题目大意:题解:#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) return原创 2016-07-04 20:50:16 · 345 阅读 · 0 评论 -
[主席树 树状数组套权值线段树] BZOJ 1146 [CTSC2008]网络管理Network
CTSC的裸题么先建主席树 然后修改么 可以发现对整棵子树有影响 对每个点记录每个权值的改变量然后用差分的思想 用树状数组区间修改 单点查询A掉后发现不用打主席树 可以最初的权值也可以树状数组上改 结果稍微改下程序 慢了5倍233#include#include#include#define V G[p].vusing namespace std;原创 2016-05-13 21:50:46 · 913 阅读 · 0 评论 -
[树状数组] BZOJ 4240 有趣的家庭菜园
%%%POPOQQQ从小到大枚举高度,由于无论将这株草移动到左侧还是右侧都对比它高的植物没有影响,因此贪心选择代价最小的方向即可 故答案为∑min(a[1…i-1]中大于a[i]的数的数量,a[i+1…n]中大于a[i]的数的数量) #include#include#includeusing namespace std;typedef long long ll;原创 2016-06-06 07:44:23 · 554 阅读 · 0 评论 -
[整体二分 树状数组套线段树] BZOJ 2674 Attack
大暴力啊 96s+卡过 //本地明明44s+//要了数据才知道相对顶点可以不是左下和右上#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+frea原创 2016-06-06 18:22:48 · 659 阅读 · 0 评论 -
[扫描线 树状数组 随机数列 优化] BZOJ 2221 [Jsoi2009]面试的考验
%%%JSB#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1=原创 2016-06-27 11:48:52 · 959 阅读 · 0 评论 -
[乱搞 树状数组] BZOJ 4548 小奇的糖果 && BZOJ 3658 Jabberwocky
跟悬线法有点像#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread原创 2016-05-08 12:53:55 · 935 阅读 · 0 评论 -
[树状数组套权值线段树] BZOJ 1901 Zju2112 Dynamic Rankings
模板题吧很多题解都是套主席树 没必要吧#include#include#include#define V G[p].vusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=bu原创 2016-05-13 16:24:18 · 664 阅读 · 0 评论 -
[dfs序 树状数组] BZOJ 4034 [HAOI2015]T2
两个log可以树链剖分day2听课时惊闻一个log的做法但我打low了,并不快...#include#include#include#define V G[p].vusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,原创 2016-04-27 19:52:30 · 563 阅读 · 0 评论 -
[树状数组] 洛谷 P3616 富金森林公园
达成成就 noip题想不出! 我是怎么做到想去写cdq分治加并查集的 还写不出来 数据结构学傻系列 其实是noip题 这样的话高度一样怎么办 我们把一个高度放大成一个高度区间就可以避免有相同数字了#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;inline char nc(){ stat原创 2017-03-04 19:52:56 · 729 阅读 · 0 评论