
线段树
yxg_123
这个作者很懒,什么都没留下…
展开
-
hdu1754 I Hate It 线段树RMQ
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754题意:题解:线段树RMQ,单点更新,区间查询最大值代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pa原创 2017-03-01 16:38:00 · 209 阅读 · 0 评论 -
cdoj 1061 秋实大哥与战争 线段树,合并区间,单点更新,单点查询区间长度
题目链接:http://acm.uestc.edu.cn/#/problem/show/1061题意:题解:线段树记录从左边延展的长度,记录从右边延展的长度,和区间最大长度 每次更新的时候,就向上更新代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,size原创 2017-03-02 18:51:12 · 227 阅读 · 0 评论 -
Poj 3667 - Hotel 线段树-- 区间更新 区间合并 区间查询
题目链接:http://poj.org/problem?id=3667题意:题解:http://www.cnblogs.com/scau20110726/archive/2013/05/07/3065418.html 写的挺好 http://www.cnblogs.com/yewei/archive/2012/05/05/2484471.html 参考代码代码:#include <stdio.h原创 2017-03-02 21:42:04 · 218 阅读 · 0 评论 -
poj 2828 buy Tickets 用线段树模拟带插入的队列 单点更新
题目链接:http://poj.org/problem?id=2828题意:给出n个人,每人有一个应该在队列的位置和值,如果后面的人的位置和前面重复了,就插在前面。输出最后的队列题解:从后往前找位置,因为后面的人的位置总是不变的 线段树,单点更新, 维护的v表示 这段区间一共有多少个空位置 更新到叶子节点的时候:v=0,return L; 因为这个位置已经固定了,相当于在后面的人预留一个位置,相原创 2017-03-02 23:14:52 · 246 阅读 · 0 评论 -
喵哈哈村的魔法考试 Round #2 (Div.2) B.喵哈哈村的种花魔法 线段树 区间更新 单点查询
喵哈哈村的种花魔法发布时间: 2017年2月26日 16:13 最后更新: 2017年2月26日 16:14 时间限制: 1000ms 内存限制: 128M题目链接:http://qscoj.cn/problem/16/描述喵哈哈村有一个谷歌廖,谷歌廖特别喜欢种花。而且谷歌廖最神奇的就是,他会施展一种种花魔法,会使得一定区间的花儿,长高厘米。在谷歌廖施展若干次魔法之后,好奇的沈宝宝想知道原创 2017-03-03 00:46:06 · 366 阅读 · 0 评论 -
HDU 3974 Assign the task 图论/线段树区间更新,单点查询
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3974题意:给你一个树,v,u 表示u是v的上司 有两个操作 1.让某一个点,和他的儿子们全部染成X 2.查询某一个点是什么颜色题解:当成图论跑一发,对于每一个查询直接跑到根位置就好,更新的时候,注意更新的时间问题线段树也可以做: 将树映射到区间的线段树。。。 主要是将原有的关系树根据BOSS关原创 2017-03-03 13:22:04 · 251 阅读 · 0 评论 -
Codeforces Beta Round #75 (Div. 1 Only) B. Queue 线段树+二分
题目链接:http://codeforces.com/problemset/problem/91/B题意:给你一个数列,让你找到最右边比这个数小的数的位置,如果没有就输出-1题解:线段树中二分,查询最小值,然后二分区间就好了代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) mems原创 2017-03-06 22:06:50 · 411 阅读 · 0 评论 -
Codeforces VK Cup 2015 - Qualification Round 1 D. Closest Equals 离线线段树 求区间相同数的最小距离
题目链接:http://codeforces.com/contest/522/problem/D题意:查询区间相同数的最小距离题解:用一个map记录前面的位置,然后离线搞一搞 单点更新,区间查询最小值代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,size原创 2017-03-11 21:39:35 · 398 阅读 · 0 评论 -
zoj 1610 Count the Colors 线段树 区间更新
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=610题意:题解:线段树区间更新 注意更新子节点,如果遇到的父节点已经被颜色覆盖掉的话,父节点 的颜色需要往下传递(因为父节点已经不会是原来那种颜色了)。代码:#include <bits/stdc++.h>using namespace std;typedef lo原创 2017-03-24 19:02:57 · 273 阅读 · 0 评论 -
hdu4288 Coder 离线线段树 单点更新 区间求和 离散化?
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4288题意:维护一个有序数列{An},有三种操作: 1、添加一个元素。 2、删除一个元素。 3、求数列中下标%5 = 3的值的和。题解:http://blog.youkuaiyun.com/dgq8211/article/details/7999179 由于线段树中不支持添加、删除操作,所以题解写的是用离线做原创 2017-03-24 19:16:56 · 314 阅读 · 0 评论 -
CodeforcesBeta Round #19 D. Points 离线线段树 单点更新 离散化
题目链接:http://codeforces.com/contest/19/problem/D题意:有三种操作“add x y”往平面上添加(x,y)这个点,”remove x y”,将平面上已经存在的点(x,y)删除,“find x y”找出平面上坐标严格大于(x,y)的点,如果有多个点找x最小的,再找y最小的。题解:所有点 x 坐标离散化,然后按照新的坐标建一个线段树。 对于每一个坐标x,维护原创 2017-03-24 19:39:49 · 238 阅读 · 0 评论 -
zoj 2301 || hdu 1199 Color the Ball 线段树 离散化
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1301题意:[l,r],染成w/b, 初始全为b,问最长段的w题解:因为N小于2000,染色范围可以到2^31,所以要离散化http://blog.youkuaiyun.com/zxy_snow/article/details/6639878 其实这题的意思是 染色区间【闭区间】原创 2017-03-25 23:29:19 · 680 阅读 · 0 评论 -
hdu 1540 Tunnel Warfare 线段树 单点更新,查询区间长度,区间合并
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1540题意:给你一个区间,有三个操作,使的一个村庄毁灭,使的上一个毁灭的村庄复活,查询这个村庄所在最长区间题解:区间合并的线段树,单点修改,记录从左边的最大值,右边的最大值,区间的最大值 然后每次更新代码:#include <bits/stdc++.h>using namespace std;typ原创 2017-03-02 18:09:59 · 230 阅读 · 0 评论 -
bzoj 1798: [Ahoi2009]Seq 维护序列seq 线段树 区间乘法区间加法 区间求和
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1798题意:题解:线段树,区间乘法+区间加法,都扔给一个updata就好代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#def原创 2017-03-02 16:43:53 · 678 阅读 · 0 评论 -
codevs 1191 树轴染色 线段树区间定值,求和
题目链接:http://codevs.cn/problem/1191/题意:题解:sum表示这段区间白点的个数,初始全部为0。 lazy为1表示到达这个区间需要被更新为白点,到需要更新的时候再pushdown代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,原创 2017-03-02 15:11:42 · 290 阅读 · 0 评论 -
HDU 1166 敌兵布阵 线段树
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166题意:题解:代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pair#define PB push_原创 2017-03-01 16:33:17 · 225 阅读 · 0 评论 -
poj3468 A Simple Problem with Integers 线段树 区间更新 lazy
题目链接:http://poj.org/problem?id=3468题意:题解:区间更新 lazy操作,会爆int , 另外用scanf代码:#include <cstdio>#include <iostream>#include <cstring>using namespace std;typedef long long ll;#define MS(a) memset(a,0,size原创 2017-03-01 22:18:49 · 240 阅读 · 0 评论 -
hdu1698 Just a Hook 线段树 区间更新 懒操作
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698题意:输入一个n表示一段长度为n的区间,有n个编号为1~n的点,初始值全部为1。 有q个操作, 每个操作有3个数:l,r,v表示将区间l~r的所有元素修改为v。 求经过q次修改后的整个区间的值之和。题解:线段树。 区间更新 lazy。 需要用的时候再pushdown 一个点一个点的更新之所以慢原创 2017-03-01 21:40:08 · 271 阅读 · 0 评论 -
HDU 1394 Minimum Inversion Number 线段树 单点更新 求逆序数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394题意:a1, a2, …, an-1, an a2, a3, …, an, a1 a3, a4, …, an, a1, a2 … an, a1, a2, …, an-1 求其中最小的逆序数的个数题解:从a[0]开始扫描,找比a[0]大的个数,也就是询问区间(a[0],n-1)中点的原创 2017-03-01 16:45:54 · 238 阅读 · 0 评论 -
hdu 2795 Billboard(线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2795题意:一个h*w的公告牌,要在其上贴公告。 输入的是1*wi的w值,这些是公告的尺寸 接下来要满足的条件: 尽量往上,同一高度尽量靠左。 求第n个广告所在的行数 ,没有合适的位置贴了则输出-1。题解:利用线段树可以得出区间的最大值,维护一个最大值val,用来表示这段区间内有最多空位的那一行的空原创 2017-03-01 19:11:19 · 234 阅读 · 0 评论 -
cdoj1057 秋实大哥与花 线段树 区间加,区间查询和
题目链接:http://acm.uestc.edu.cn/#/problem/show/1057题意:题解:代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pair#define PB push_bac原创 2017-03-01 22:24:14 · 283 阅读 · 0 评论 -
poj 2528 Mayor's posters 线段树区间更新 + 离散化
题目链接:http://poj.org/problem?id=2528题意:一个区间贴海报,然后问你在最后,能看见多少个海报题解:用每个离散化之后的编号, 区分不同海报, 每次更新都是覆盖前一个值的,最后统计一下有多少不同的v就好了稍微了解了离散化的姿势: http://www.cnblogs.com/gongxijun/p/4020322.html通俗点说,离散化就是压缩区间,使原有的长区间映射原创 2017-03-01 23:56:22 · 267 阅读 · 0 评论 -
BZOJ 1012: [JSOI2008]最大数maxnumber 单调队列/线段树
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1012题意:题解:不用printf输出就RE…代码:代码一: 单调队列#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define原创 2017-03-02 12:31:15 · 314 阅读 · 0 评论 -
tyvj:1038 忠诚 线段树 区间查询
题目链接:http://www.tyvj.cn/p/1038#题意:题解:区间查询最小值代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pair#define PB push_backconst in原创 2017-03-02 14:33:09 · 283 阅读 · 0 评论 -
vijos 1659 河蟹王国 线段树区间加、区间查询最大值
题目链接:https://vijos.org/p/1659题意:题解:线段树,区间更新(加/减),区间查询最大值代码:#include <cstdio>#include <iostream>#include <cstring>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#defin原创 2017-03-02 14:34:40 · 374 阅读 · 0 评论 -
ural 1019. Line Painting 线段树 离散化
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1019题意:初始0~1e9都染成白色,[l,r]染成w/b, 是开区间。 样例: 4 1 999999997 b 40 300 w 300 634 w 43 47 b 输出 47 634 题解:类比上一篇博客,不同的是开区间 还是那组样例 2 0 3 b 4 9999999原创 2017-03-25 23:54:24 · 331 阅读 · 0 评论