FZU 2277 (dfs序+线段树)

用dfs序可以维护出所有子节点 对于更新,我们将更新变为deep[i]k−deep[j]kdeep[i]k−deep[j]kdeep[i]k - deep[j]k,deep[j]kdeep[j]kdeep[j]k就是当前自己的深度,是可以直接计算的,那么对于deep[i]kdeep[i]kdee...

2018-04-13 09:39:50

阅读数 123

评论数 0

HDU5692(dfs + 线段树)

题解:是个好题,对于经过某一点的最大值,可以将某一点作为根,他的子树中到0的最大值即为解。那么这样,可以用dfs跑出一个序,即当前点到0的值,每个点维护一个L,R区间,那么这个区间的点就是它的子树。对于单点更新一个值,那么就变成区间更新,更新这个点L,R区间所以点的值,对于查询,就是L,R区间中的...

2018-03-13 17:35:09

阅读数 43

评论数 0

codeforces 899 F - Letters Removing (线段树)

题意:给你一个长度为n的字符串,只包括大小写字母与数字,还有q个操作,对于每个操作 将[l,r]区间内删除字符ch题解:对于这个操作l,r,是之间操作完的串的l,r,也就是你还需要找到原始串中的l,r 方法是开62个线段树,每一个维护区间和,那么对于如何寻找原来的l,r,进行前缀和的二分查找,前...

2017-12-25 21:32:05

阅读数 137

评论数 0

HDU5861 (线段树区间更新+单点查询)

题意:有n个村庄,每相邻两个村庄之间的路有一个费用,有m个查询,查询从l走到r需要的最小费用,保证l走到r时所有的路需要打开,每条路只能打开和关闭一次。题解:因为只能打开和关闭一次,所以我们离线维护每条路最早的打开时间和最晚的关闭时间,那么对于每一个查询的l-r,可以用线段树区间赋值i,表示第几天...

2017-12-18 13:32:08

阅读数 130

评论数 0

线段树整理

主要是记录一下线段树的写法,包括建树、区间查询、单点更新 以后就统一用这个写法了,很清楚#include <iostream> #include <cstring> #include <string> #include <algorithm> #i...

2017-10-10 23:19:18

阅读数 102

评论数 0

ZOJ 2671 (线段树+矩阵乘法)

这题着实是锻炼线段树的一个好题,纯模板题但是加上了一点其他的东西,细节很多 细节一:格式错误,每两个一大组数据和之间需要有有一个换行。 细节二:每两个输出之间有一个换行 细节三:每次需要清空存储矩阵的结构体(但是我不是特别明白为什么要清空) #include #include #inc...

2017-07-06 21:23:31

阅读数 143

评论数 0

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