洛谷 P4188 [USACO18JAN]Lifeguards (线段树)

#Problem 给 nnn 个区间,请你删去一个区间,问剩下区间并集最长为多少 #Solution 线段树维护区间覆盖长度… 然后每次删去一个区间看剩下的并集长度,再加上那个这个区间… 注意: 线段树求区间长度,要把区间定义为左闭右开,这样好做 只会插入线段,删去原有线段,因此...

2018-09-17 20:45:55

阅读数:12

评论数:0

bzoj3306:树(dfn序+线段树+倍增)

Problem 支持换根、修改权值的子树最小值查询 Solution 不考虑换根就是线段树模板题了.. 那么加上换根呢 我们发现换完根,对于原图中大部分子树的最小值是没有关系的 只有 111 到新根上面的点会有变换 新根:为所有点最小值 除新根外此链上的点:除去新根这个外枝的其...

2018-09-14 18:30:45

阅读数:12

评论数:0

bzoj4071(UOJ112)【APIO2015】Palembang Bridges (权值线段树)

Problem nnn 个人,住在 AAA 或 BBB 岸,在 AAA 或 BBB 岸上班,距离为坐标相减(如需过河则加一)。 可以修建 k(k<=2)k(k<=2)k(kkkk 只有两种取值,我们分别讨论。 k=1k=1k=1 时 当我们选...

2018-09-14 18:29:42

阅读数:10

评论数:0

【51nod 1412】金牌赛事 (线段树优化dp)

problem nnn 条道路每条道路有一个花费,mmm 场比赛,第 iii 场比赛需要用到第 li−rili−ril_i-r_i 条道路,如果这些道路都建立了,可以得到一个花费 问选择其中的一些道路,得到的最大花费是什么 题解 设 f[i]f[i]f[i] 表示选择选择第 iii 条...

2018-09-11 07:56:35

阅读数:20

评论数:0

【51nod 1766】 树上的最远点对 (线段树、lca、rmq)

线段树维护区间最长路径 对于一次合并 (a,b)+(c,d)(a,b)+(c,d)(a,b)+(c,d),若 (a,b)(a,b)(a,b) 中最长线段为 (x1,x2)(x1,x2)(x1,x2) , (c,d)(c,d)(c,d) 中最长线段为 (y1,y2)(y1,y2)(y1,y2)...

2018-09-10 15:18:56

阅读数:7

评论数:0

【51Nod 1559】 车和矩形 (线段树)

题意 有一个 n∗mn∗mn*m 的棋盘,其中有 kkk 个点有棋子, qqq 次个矩形。若矩形中每行都有一个棋子或没列都有一个棋子,则为被保护矩形,输出 “YES” ;否则 “NO” 题解 可以把所有点、矩形排序,然后扫描线方法判断 线段树记录每列最靠右的点的横坐标 对于一次询问,如果...

2018-09-10 15:17:46

阅读数:10

评论数:0

[HDU 5828] Rikka with Sequence (线段树)

[HDU 5828] Rikka with Sequence U盘丢了不开心…励志以后每道题都要写博客…谁知道下一次什么丢了呢 【再见】 题意 三个操作:区间加、区间开方、区间求和 题解 考虑没有区间加怎么做(bzoj3211) 每个数最多开方 6 次,记录这个区间开方了几次,超过...

2018-07-23 22:02:26

阅读数:18

评论数:0

bzoj1396 识别子串(后缀数组/后缀自动机+线段树)

bzoj1396 识别子串 题意:求所有i,使 l≤i≤rl≤i≤rl\leq i\leq r 的子串在字符串中只出现一次的最短子串长度 方法:先考虑怎么求出只出现一次的串。 我们可以通过后缀数组,显然从x开始的后缀中最短的就是与前后两个height中最大的一个+1,因为最大的那个使能匹配的...

2018-06-16 00:52:05

阅读数:17

评论数:0

bzoj3110/lg3332:[ZJOI2013]K大数查询 (树套树)

哇真题..真的…. 线段树套线段树,外层为权值线段树,内层为位置线段树 题目是求第k大啊…我为什么..就像成第k小了???怕不是傻子 不过呢,这题…因为内层是动态开的…所以…不能pushup、pushdown了….不然会错 因为没有开下去,下放什么的都有问题 所以…在插入操作中,如果正好...

2018-05-30 21:40:40

阅读数:19

评论数:0

bzoj3196/lg3380:二逼平衡树(树套树)

唉..树套树真的好难写…… 这题呢…线段树套平衡树… 五个操作: 在线段树上找到区间,去找每个区间对应的平衡树中比x小的有多少个 这问需要二分诶…二分看结果是不是前面正好有x-1个数比它小 就把x所在的所有区间删去a[x]这个数,插入y这个数 在线段树找到区间…平衡树找前驱 在线段树找到区...

2018-05-30 00:40:32

阅读数:24

评论数:0

bzoj1835/lg2605:[ZJOI2010]基站选址 (线段树优化dp)

哇..假的假的…好难…. 为什么…这么多道题..我要先看这道………. 我以为第一道会很和蔼的啊啊啊 可怕的..lg2605 唉… 其实..简单来说就是线段树优化dp….但是…依旧不会啊扎心 方程其实也是可以写的 f(i,j)=f(k,j−1)+cost(k+1,i−1)+c[i],f(...

2018-05-29 23:49:59

阅读数:16

评论数:0

线段树练习

目录^_^ cf620e: New Year Tree 题意 题解 代码 cf384e 题意 题解 代码 cf838b Diverging Directions 题意 题解 hdu3974 Assign the task 题意 题解 代码 bzoj4034:[HAOI2015...

2018-05-17 20:00:36

阅读数:34

评论数:0

bzoj3939/lg3120:[USACO15FEB] Cow Hopscotch(动态开点线段树)

题目 有n*m的方格,每个方格都有一个的值,要求从左上跳到右下 要求: 1. 跳到的格子必须与上一个格值不相同 2. 必须在上一个格下方 3. 必须在上一个格右方 问一共多少种方式跳到右下 题解 我们能发现,这是个dp dp[i][j]=∑dp[l][k](a[l][k]...

2018-04-13 00:10:57

阅读数:23

评论数:0

bzoj:4653: [Noi2016]区间 (线段树)

题解 bzoj4653 首先,我们想到如果某几条(大于m)线段都包含某个点,那么就先排序,然后就可以线性求出最小结果 那我们就把这所以条线段按长度排序 然后一条一条加边,知道有重合出现便记录结果,然后删边… 线段树维护每个点出现过多少次 代码 #include &am...

2018-04-01 22:12:32

阅读数:21

评论数:0

cf833b:The Bakery(线段树优化dp)

题意 cf833b n个数分成k段,求每段中不同数字个数的和的最大值 题解 dp[i][k]dp[i][k]dp[ i ][ k ]表示前i个数字分成k段的结果 dp[i][k]=max(dp[j][k−1]+num[j+1][i])(1<=j&...

2018-03-29 21:05:42

阅读数:39

评论数:0

cf474e Pillars(线段树优化dp)

题意 有n个柱子,每个柱子有一个高度hihih_i,每个柱子可以跳到它后面高度与它相差大于d的柱子(即|hi−hj|≥d|hi−hj|≥d\left | h_i-h_j \right|\geq d) 求最多可以跳多少个柱子 题解 ansi=max(ansj+1)(|hi−hj|&...

2018-03-29 19:32:43

阅读数:25

评论数:0

bzoj4552 [HEOI2016/TJOI2016]排序(二分+线段树)

题解 哇二分..真厉害! 每次二分一个数,然后把小于x的数当做0,大于的当做1 然后对于每一段,想把它排好序,也就是把1和0排好序,也就是把部分改成1、部分改成0。而这一段里面有几个1就可以区间和解决了。 即如果已经求出这段有cnt个1,升序操作[l,r-cnt]=0,[r-cnt+1,r...

2018-03-21 21:33:36

阅读数:52

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭