随笔分类 - 线段树
摘要:Codeforces 786B Legacy (线段树优化建图) 题意:n个点,有3种连边操作:1.将u指向v;2.将v指向编号在区间[l,r]的点;3.将[l,r]中的所有点指向v 做法:线段树优化建图。拓展一些新的节点来代表某些区间的点,然后,如果需要进行区间$[
阅读全文
摘要:UVALive 8518 Sum of xor sum 做法:线段树维护:答案,边界在左端点的区间异或为1的个数,边界在右端点异或为1的个数,1的个数,区间长度,这样已经自洽了。(每次讲线段树,都会讲这个题,比较经典的思想) update:2018/10/09 首先,我们考虑拆位,分别计算每一位的贡
阅读全文
摘要:GYM 101908F Music Festival 做法:将节目按照右端点排序,dp[i][st][0/1]表示前i个节目,选择的stage的状态用一个n位二进制数表示为st,第i个节目选或不选的最大值,转移时用线段树优化一下。 c++ include define pb push_back
阅读全文
摘要:Codeforces1045G 做法:按半径r从大到小枚举,对于每个q,枚举对应位置可能的q值,对每个q,维护出现的坐标x,每次查询半径内的已经出现的坐标的数目即可。需要实现一个插入单点加,查询区间和的操作,动态开点线段树即可。看来还是要学习一下pb_ds了。 c++ include typedef
阅读全文
摘要:线段树动态开点区间加区间求和 题目来源: 陕西师范大学第七届程序设计竞赛网络同步赛 H. 万恶的柯怡 思想: 保证叶子节点被完整的覆盖,需要开节点,就把左右儿子都开出来,其余和普通线段树一样。 tips: 用结构体内部函数,内存不足,(第一次遇见本地问题不严重)不明嚼栗??? 模板:
阅读全文
摘要:题意:有一个序列a[],描述的是另一个序列ans[]每个位置单位时间的增量。每个单位时间每个位置都会增加一个单位对应增量。时间总长m,每个单位时间包含有两种操作中的一个:1.询问ans[]在[l,r]区间的和;2.修改:a[]在[l,r]区间+1,即[l,r]区间的ans[]增量+1,a[i], n
阅读全文
摘要:Water Problem 单点修改 区间修改 差分 BZOJ1798区间加乘 HDU4027 区间加等差数列区间求和 区间加等比数列区间求和 BZOJ2241 EOJ3536 区间加等差数列维护最大值(BZOJ 2388: 旅行规划 [分块 凸包 等差数列]) 发现上课的时候,说的那个证明太假了。
阅读全文
摘要:题目来源: 2016-2017 ACM-ICPC Pacific Northwest Regional Contest E.Enclosure 先计算出内外两个凸包,枚举大凸包上的点,在小凸包上找到两个切点。计算面积时,就相当于删掉几条原先的边,加上一个新的三角形。同时,可以注意到,如果我们按照顺时
阅读全文
摘要:题目来源: 2017-2018 ACM-ICPC Northern Eurasia (Northeastern European Regional) Contest (NEERC 17) A. Archery Tournament 每次查询,找这个位置前面的15个圆,后边15个圆来更新答案。set维
阅读全文