随笔分类 -  数据结构:线段树

摘要:E. XOR on Segment time limit per test 4 seconds memory limit per test 256 megabytes input standard input output standard output E. XOR on Segment time 阅读全文
posted @ 2018-11-05 22:48 冥想选手 阅读(280) 评论(0) 推荐(0)
摘要:Description 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了。不过,她经常回忆起以前在乡间漫步的情景。昔日,乡下有依次编号为1..n的n个小村庄,某些村庄之间有一些双向的土路。从每个村庄都恰好有一条路径到达村庄1(即比特堡)。并且, 阅读全文
posted @ 2018-11-05 19:19 冥想选手 阅读(177) 评论(0) 推荐(0)
摘要:C. Object-Oriented Programming time limit per test 3.0 s memory limit per test 1024 MB input standard input output standard output C. Object-Oriented 阅读全文
posted @ 2018-11-04 21:27 冥想选手 阅读(440) 评论(0) 推荐(0)
摘要:题目描述 Description 有n个数和5种操作 add a b c:把区间[a,b]内的所有数都增加c set a b c:把区间[a,b]内的所有数都设为c sum a b:查询区间[a,b]的区间和 max a b:查询区间[a,b]的最大值 min a b:查询区间[a,b]的最小值 题 阅读全文
posted @ 2018-11-02 21:46 冥想选手 阅读(175) 评论(0) 推荐(0)
摘要:4196: [Noi2015]软件包管理器 Description Linux用户和OSX用户一定对软件包管理器不会陌生。通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个软件包的安装所依赖的其它软件包),完成所有 阅读全文
posted @ 2018-11-01 21:10 冥想选手 阅读(346) 评论(1) 推荐(0)
摘要:Description 给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。有q次询问,每次询问给出l r z,求sigma_{l<=i<=r}dep[LCA(i,z)]。(即,求 阅读全文
posted @ 2018-11-01 18:57 冥想选手 阅读(148) 评论(0) 推荐(0)
摘要:链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2957 思路: 用分块可以很简单的过掉,但是这道题也可以用线段树写。 分类讨论左区间最大值对右区间取值的影响,这样每次都只计算左右区间其中一个,复杂度就降成了logn. 实现代码: 阅读全文
posted @ 2018-10-16 21:31 冥想选手 阅读(156) 评论(0) 推荐(0)
摘要:链接;http://acm.hdu.edu.cn/showproblem.php?pid=3397 题意: 给你一串01串,有5种操作 0. 区间全部变为0 1.区间全部变为1 2.区间异或 3.询问区间1的个数 4.询问区间被最长连续1的长度 思路: 这5个操作都是比较基础的线段树操作,难点在于有 阅读全文
posted @ 2018-10-12 22:23 冥想选手 阅读(173) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3911 题意: 给你一段01序列,有两个操作: 1.区间异或,2.询问区间最长的连续的1得长度 思路: 线段树区间合并,开六个数组分别表示: lsum0 区间左边界开始从左到右连续0的个数 rsum0 阅读全文
posted @ 2018-10-12 18:49 冥想选手 阅读(261) 评论(0) 推荐(0)
摘要:链接:http://acm.hdu.edu.cn/showproblem.php?pid=6393 思路:n个点,n条边,也就是基环树。。因为只有一个环,我们可以把这个环断开,建一个新的点n+1与之相连,然后就按照树链剖分求边权的方法分类讨论下,过不过这条被分开的边,一共有三种情况取值最小的。 实现 阅读全文
posted @ 2018-09-25 21:50 冥想选手 阅读(211) 评论(0) 推荐(0)
摘要:题目链接:https://nanti.jisuanke.com/t/31714 题意:给你一棵树,初始全为0,有四种操作: 1.u-v乘x 2.u-v加x 3. u-v取反 4.询问u-v的和 思路: 除去第三个操作就是很简单的树链剖分+线段树多重标记下放,所以我们只要考虑怎么维护第三个操作就好了, 阅读全文
posted @ 2018-09-15 22:29 冥想选手 阅读(288) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4897 题意: 给你一棵树,一开始每条边都是白色,有三种操作: 1.将 u - v路径上的边转换颜色 2.将 u - v路径上相邻的边转换颜色 3.求 u - v 路径上黑色边的数量 思路: 好变态的一 阅读全文
posted @ 2018-09-14 09:45 冥想选手 阅读(227) 评论(0) 推荐(0)
摘要:题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=4552 题意: 给你一个1-n的全排列,m次操作,操作由两种:1.将[l,r]升序排序,2.将[l,r]降序排列 最后给你一个点p,输出这个点的数 思路: 因为这道题只有一个询问,只需要知道 阅读全文
posted @ 2018-09-02 18:10 冥想选手 阅读(220) 评论(0) 推荐(1)
摘要:链接:https://nanti.jisuanke.com/t/30996 题意:很简单,懒得讲了 思路:我们可以直接用线段树求出区间最左边小于某个数的数,线段树存1-n房间的灯数,维护区间最小值,查询的时候优先向左走就好了, 一个房间满了我们就用线段树将这个房间的值更新为inf,然后模拟下就好了。 阅读全文
posted @ 2018-09-01 18:16 冥想选手 阅读(546) 评论(0) 推荐(0)
摘要:题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2212 思路:用线段树合并求出交换左右儿子之前之后逆序对的数量,如果数量变小则交换. 实现代码: 阅读全文
posted @ 2018-08-28 19:03 冥想选手 阅读(146) 评论(0) 推荐(0)
摘要:HDU 6188 Duizi and Shunzi 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6188 思路: 签到题,以前写的。 实现代码: HDU 6182 A Math Problem 链接:http://acm.hdu.edu.cn/showp 阅读全文
posted @ 2018-08-11 13:37 冥想选手 阅读(457) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4747 思路: 比赛打得太菜了,不想写。。。。线段树莽一下 实现代码: 阅读全文
posted @ 2018-07-25 17:24 冥想选手 阅读(254) 评论(0) 推荐(0)
摘要:Naive Operations Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 502768/502768 K (Java/Others)Total Submission(s): 0 Accepted Submission(s): 0 Pr 阅读全文
posted @ 2018-07-25 17:13 冥想选手 阅读(178) 评论(0) 推荐(0)
摘要:Distinct Values Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2298 Accepted Submission(s): 740 阅读全文
posted @ 2018-07-24 14:41 冥想选手 阅读(248) 评论(0) 推荐(0)
摘要:1206 Picture 题目来源: IOI 1998 基准时间限制:2 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 收藏 关注 1206 Picture 题目来源: IOI 1998 基准时间限制:2 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 12 阅读全文
posted @ 2018-06-03 14:45 冥想选手 阅读(182) 评论(0) 推荐(0)