线段树
芋智波佐助
菜鸟一只
展开
-
TOJ 4369 ZOJ 3632 Watermelon Full of Water / 线段树优化DP
Watermelon Full of Water时间限制(普通/Java):3000MS/9000MS 运行内存限制:65536KByte描述Watermelon is very popular in the hot summer. Students in ZJU-ICPC Team also love watermelon very much and th原创 2013-11-07 14:38:56 · 1361 阅读 · 0 评论 -
HDU 2795 Billboard / 线段树单点更新
BillboardProblem DescriptionAt the entrance to the university, there is a huge rectangular billboard of size h*w (h is its height and w is its width). The board is the place where all possible ann原创 2013-10-18 18:24:37 · 1628 阅读 · 0 评论 -
ZOJ 1484 HDU 1394 Minimum Inversion Number / 线段树单点更新
一个长度为n的序列 每次可以把第一个序列移动到最后 有n种 求这n种中逆序数最小的首先可以用线段树求出一个序列的然后考虑如果把第一个拿到最后 因为他是第一个 所以听过他是x 那么对于x的逆序数有x对(0~x-1) 因为数字都是0-n-1的 如果把这个x移到最后 逆序数减少x对 增加了n-(x+1)求出一种然后在循环n-1次求出所有的情况取最小#include #include原创 2014-02-18 20:20:33 · 1062 阅读 · 0 评论 -
LA 3938 "Ray, Pass me the dishes!" / 线段树单点更新
中间有一个| 我写成了|| 查了好几个小时 我日每次询问一段区间最大和的起始和终点坐标 x,y x y 尽量小对于某个节点 最大和要么是左子树的最大和 要么是右子树的最大值 要么是左右各有最后一中情况要保存最大前缀和最大后缀 取左子树的最大后缀和右子树的最大前缀#include #include #include #include #include #include原创 2014-01-19 21:32:10 · 1134 阅读 · 0 评论 -
HDU 1698 Just a Hook / 线段树成段更新
Just a HookTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Problem DescriptionIn the game of DotA, Pudge’s meat hook is actually the most horrible thin原创 2013-10-30 12:57:40 · 1107 阅读 · 0 评论 -
UVa 11992 Fast Matrix Operations / 线段树成段更新
练基本功 成段更新求2维区间最大值最小值以及和 把某个区间置为v 把某个区间都加上v难点是set与add的先后顺序的处理 如果先做add在做set那么add是没用的 所以做set时将add置为0 当add不为0 并且 set不为0 那么set肯定在add前面(如果在后面 那么add就置为0了)所以这种情况先做set当add为0 set不为0 肯定要做set当add不为0 set原创 2014-02-04 23:15:40 · 1279 阅读 · 0 评论 -
TOJ 4489 You are a Boss / 线段树成段更新
没什么好说的啊 练基本功啊时间戳+线段树成段更新+单点查询用dfs时间戳找出每个人管的属下 low high 每次成段更新 唉 #include #include #include using namespace std;const int MAX = 500010;int b[MAX];int c[MAX];int low[MAX];int high[MAX];原创 2014-03-04 10:54:55 · 1197 阅读 · 0 评论 -
TOJ 4325 RMQ with Shifts / 线段树单点更新
RMQ with Shifts时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte描述In the traditional RMQ (Range Minimum Query) problem, we have a static array A. Then for each query (L, R) (L<=R), we原创 2013-10-29 11:26:01 · 1110 阅读 · 0 评论 -
TOJ 4399 Deal with numbers / 线段树成段更新
Deal with numbers时间限制(普通/Java):10000MS/30000MS 运行内存限制:65536KByte描述There are n numbers with the corresponding NO.1-n, and the value of the i-th number is xi.Define three operati原创 2013-11-05 11:50:37 · 1472 阅读 · 0 评论 -
Light OJ 1411 Rip Van Winkle`s Code 线段树成段更新
题目来源:Light OJ 1411 Rip Van Winkle`s Code题意:3中操作 1种查询 求区间和 其中每次可以把一段区间从左到右加上1,2,3,。。。或者从右到左加上。。。3,2,1 或者把某个区间的数都置为v思路:我是加了6个域 add是这段区间每个数都要加上add add是这么来的 对与123456。。。这个等差数列 可能要分为2个区间 那么我就分成123和12原创 2014-07-13 17:18:39 · 1178 阅读 · 0 评论 -
HDU 1542 Atlantis 矩形面积并
题目来源:HDU 1542 Atlantis题意:给你一些矩形(左下角和右上角)求面积思路:参考here这个超赞的 一看就懂了#include #include #include #include using namespace std;const int maxn = 210;struct node{ double l, r, h; int s, val; nod原创 2014-05-05 17:32:42 · 947 阅读 · 0 评论 -
POJ 2528 Mayor's posters 线段树成段更新+离散化
题目来源:POJ 2528 Mayor's posters题意:很多张海报贴在墙上 求可以看到几张海报 看那两张图就行了 第一张俯视图思路:最多2W个不同的数 离散化一下 然后成段更新 a[rt] = i代表这个区间是第i张报纸 更新玩之后一次query cover[i]=1代表可以看到第i张报纸#include #include #include using namespace原创 2014-05-01 22:05:02 · 988 阅读 · 0 评论 -
URAL 1019. Line Painting 线段树 区间合并 离散化
题目来源:URAL 1019. Line Painting题意:求最长的一段全部为白色的区间思路:线段树成段更新 区间合并 离散化 这里对应的是一段区间 所以每次不是m+1 而是 l m 和 m r 了 另外我加上了0 和 10^9 这两个点 每一段区间(l, r)我记录的是l和r之间有多少条线段 #include #include #include using namesp原创 2014-08-31 14:24:03 · 1143 阅读 · 0 评论 -
TOJ 4283 Gifts with different style / 线段树 树状数组 背包
Gifts with different style 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte 描述前些日子GBQC国的小明在凤凰古城痛痛快快地玩了两天,临走之前希望给女友带回两件不同种类的纪念品,而且小明的背包最多只能容纳总体积不超过V的物品,各个纪念品使其女友的高兴程度的增加值也不全是一样的。现在原创 2013-11-04 10:15:33 · 1095 阅读 · 0 评论 -
POJ 2763 Housewife Wind LCA转RMQ+时间戳+线段树成段更新
题目来源:POJ 2763 Housewife Wind题意:给你一棵树 2种操作0 x 求当前点到x的最短路 然后当前的位置为x; 1 i x 将第i条边的权值置为x思路:树上两点u, v距离为d[u]+d[v]-2*d[LCA(u,v)] 现在d数组是变化的 对应每一条边的变化 他修改的是一个区间 用时间戳处理每个点管辖的区域 然后用线段树修改 线段树的叶子节点村的是根到每一个点的距离原创 2014-07-15 23:03:39 · 1264 阅读 · 0 评论