线段树
Chester_King
虽千万人,吾往矣。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【BZOJ】1798 [Ahoi2009]Seq 维护序列seq 线段树
题目传送门 这题的正解是线段树,这个其实还是比较好想的,因为这道题中的所有操作都是线段树的基本操作。 但是,这题的延迟标记有两个,这两个标记之间的关系是比较难想的,而且也是比较容易打错的…… 这道题主要考察的是选手对于线段树的延迟标记的理解程度,整个程序最难打的也就是pushdown这个函数,我也在这个函数上WA了好几次。(这仅代表个人意见,如有同学认为这个函数好打,那你厉害了)附上AC代码:原创 2017-04-11 19:59:58 · 365 阅读 · 0 评论 -
【POJ】2155 Matrix 树套树&&树状数组
题目传送门从此入坑树套树,感觉现在自己脑子里还是一片的浆糊啊……感觉树套树好神奇啊……这题是一道明显的矩阵修改问题。(其实我也不知道这题的类型是什么,但是形象一点就叫它矩阵修改问题吧)对于树套树的里外两层线段树的理解:第一层线段树表示横坐标坐标在区间[x1,x2]内的所有子矩阵,第二层线段树表示纵坐标在区间[y1,y2]内的所有子矩阵。显然用树套树的数据结构,我们可以把所有子矩阵映原创 2017-09-28 07:19:51 · 294 阅读 · 0 评论 -
【BZOJ】3295 [Cqoi2011]动态逆序对 树状数组+线段树
题目传送门 这题不是主席树!这题不是主席树!这题不是主席树!(重要的事情说三遍!!!)因为这题并不需要用到历史版本,所以我们不用主席树。这题的解题思路是树状数组套权值线段树+动态开点,并不是百度上大多数人说的主席树,还是hzwer大佬说的最正确了。回到这题,考虑删除一个数a[i],当前答案要减少1~i-1中比a[i]大的数的个数和i+1~n中比a[i]小的数的个数。显然这个可以用权值线段树轻松解决原创 2017-10-14 13:00:21 · 374 阅读 · 0 评论 -
【BZOJ】3196 Tyvj 1730 二逼平衡树 线段树+平衡树
题目传送门这题除了烦一点,其实也没什么大不了的嘛……就是外层一棵区间线段树,内层套上splay,除了第二个操作需要套一个二分,时间复杂度为O(log32n)O(\log_2^3n),其他的操作的时间复杂度都是O(log22n)O(\log_2^2n)。主要是细心吧,耐心一点写都能过的吧。p.s.话说内存不够导致TLE什么的好鬼啊……还是ZZK大佬最强了,一眼就看出了问题。附上AC代码:#includ原创 2018-01-03 20:44:18 · 352 阅读 · 0 评论 -
【BZOJ】1513 [POI2006]Tet-Tetris 3D 树套树
题目传送门好像我真的低估了树套树了……做完了前面的那题,我竟然以为自己彻底掌握了树套树……大佬传送门,话说还是ZZK最强了,博客写的如此清晰、明白。对线段树套线段树还不是很理解的同学可以去大佬的博客里学习一下。写一下自己对树套树的理解:树套树其实是由两种线段树组成——权值线段树和标记线段树。外层线段树每一个节点都包含两种内层线段树。先了解一下标记永久化。标记永久化就是不原创 2017-09-28 16:59:39 · 332 阅读 · 0 评论 -
【BZOJ】3589 动态树 树链剖分+线段树
题目传送门最近心真的有点浮躁啊……连题目都不想好好看了……于是就把“一条树枝其实就是一个从某个节点到根的路径的一段”看成了“一条树枝其实就是一个从某个节点到根的路径”……wqnmlgb……操作1的K≤5K\le5,那么是不是会想到容斥?对两条路径求交?但是分析一下时间复杂度,O(m×log22n×2k)O(m\times\log_2^2n\times2^k),接近20亿啊……搞毛啊……考虑给每一条路原创 2017-12-26 20:57:23 · 326 阅读 · 0 评论 -
【BZOJ】4552 [Tjoi2016&Heoi2016]排序 二分+线段树
题目传送门题解真的好机智啊……像我这种蒟蒻只能跪在地上%%%了。简化问题是非常必要的,否则就要用Treap套权值线段树这种(垃圾又恶心的)大数据结构了。有些时候我们会把无序的数据排序来简化问题,但是……你们肯定知道我要说什么的:这题就是把有序的数据进行无序处理来简化题目的……首先我们二分一个midmid来作为最后给定位置上的答案,然后对给出的数列进行无序处理:小于midmid的位置记为00,大于等于原创 2017-12-19 20:58:00 · 285 阅读 · 0 评论 -
【51nod】1461 稳定桌 扫描线+线段树
题目传送门感觉这题的套路要比“【51nod】1494 选举拉票”那题要简单啊……大雾在这题把每一条腿的长度看成线段,从小到大枚举一个长度ii,长度大于ii的所有腿必须要取,如果剩下的腿中长度为ii的腿的数量没有严格超过半数,那么就取长度小于ii的腿的权值前num−size∗2+1num-size*2+1小。然而我TMD线段树打错了,query(lt,l,mid,w)query(lt,l,mid,w)原创 2017-10-26 07:26:23 · 398 阅读 · 0 评论 -
【51nod】1199 Money out of Thin Air 线段树
题目传送门做题的时候头脑一定要清晰,我这种蒟蒻就不要妄想能在10min之内敲出这种代码了……当然,如果敲出来了,那么必定漏洞百出。对于这题,直接对于给出的树的先序遍历序列建立线段树并维护即可。但是!我用一个数组来存每个点的权值和S操作修改的权值。这个显然是错的,因为我没有考虑区间修改经过这个点的情况的贡献……然后就是不停的WA……捂脸.jpg附上AC代码:#include <cstdio>#def原创 2017-10-24 21:16:55 · 877 阅读 · 0 评论 -
【51nod】1494 选举拉票 扫描线+线段树
题目传送门扫描线是什么鬼啊……为什么我好像什么都不会啊QwQ……以上的图片来自sillyf大佬的博客,大佬传送门把所有的候选人拥有的票数看做一条线段,枚举当前自己拥有的票数为ii,所有票数大于等于自己的票数的人必须要去py(逃)收买投票的人如果把当前必须买的部分全买完了票数还是不够,就需要去挑着买的部分选一些便宜的买来,这个可以用权值线段树实现。附上AC代码:#include <cstdio>#i原创 2017-10-19 16:21:37 · 740 阅读 · 0 评论 -
【Codeforces】452F Permutation hash+线段树
题目传送门开坑CF,纪念一下自己在CF上过了第一道题。(这有什么卵用?)这题是今天考试的原题,在考场上我竟然因为数据过水而瞎搞AC了?!(看来那个数据是真的水)考试时还有第一题,就是这题的造数据代码……(博主已经无力吐槽了……)然后就造成了我们做第一题的时候用第二题去对拍,做第二题的时候用第一题去造数据的尴尬场面……做了第一题我发现了这个结构有“奇偶各半”的特性,于是我把这个性原创 2017-10-05 15:56:28 · 388 阅读 · 0 评论 -
【BZOJ】2957 楼房重建 线段树
题目传送门这题其实可以用分块做的,但是为了接下来的BZOJ2770做准备,还是去学了一发线段树的解法。首先我们要明白题目的意思:题目给出一些坐标,求当前所有坐标和原点的斜率严格上升的序列的最长长度。查看n和m的范围,明显我们要想一种时间复杂度为O(nlogn)的算法或数据结构,要求支持插入、统计最大值。线段树显然满足我们的要求,然后这题的难点就在于怎么用线段树求以一个数为起点的最长原创 2017-09-27 19:44:40 · 281 阅读 · 0 评论 -
【BZOJ】3211 花神游历各国 【CODE[VS]】2492 上帝造题的七分钟2 线段树
题目传送门又是一次帕金森,多打等号WA6次——真的伤心啊。这题的正解是线段树,应该还是比较好想的。对于修改操作,对于给定的区间中的每一个节点做单点修改,将该节点的值变为sqrt(该节点的值),之后就是线段树的维护了。这题真的比较水,线段树连延迟标记都没有用到。附上AC代码:#include #include #include #define lt (k<<1)#de原创 2017-04-21 21:28:33 · 338 阅读 · 0 评论 -
【BZOJ】2124 等差子序列 线段树+hash
题目传送门等等……这题好像在哪里做过……哦,Codeforces 452F,原题哈……为什么我还是不会做啊……就当是复习一遍吧,这种想法还是挺好的。p.s.WA了两发,错在了updata上……好像updata这个地方好容易出错啊。附上AC代码:#include #include #include using namespace std;typedef un原创 2018-01-12 21:15:31 · 259 阅读 · 0 评论
分享