Hanks_o的博客

有权限号的bzoj蒟蒻用户

bzoj3531: [Sdoi2014]旅行(树链剖分+线段树)

题目传送门 。 解法: 据说叫动态开点。 需要用的点才建线段树。 那么最多只有二十万种不同的信息。。 跟主席树一样嘛。 YY就好了 代码实现: #include<cstdio> #include<cstring...

2018-04-22 16:27:30

阅读数 67

评论数 0

bzoj5194: [Usaco2018 Feb]Snow Boots(线段树)

题目传送门 。 解法: 线段树维护一个01序列。 0表示不可以跳。1表示可以跳。 那么每次只需要求最长一段连续的0的长度就行。 如果可以跳过去那么其他也可以跳过去。 如果跳不过去那就不行。 然后那这样每次询问都插岂不是会爆。 那离线一下咯。 询问排下序。 从小到大插。 代码...

2018-04-18 08:07:23

阅读数 208

评论数 0

bzoj5168&5029: [HAOI2014]贴海报(线段树)

题目传送门 5029一样 解法: 离散化。 覆盖段。 代码实现: #include<cstdio> #include<cstring> #include<cstdlib&a...

2018-04-17 19:14:42

阅读数 118

评论数 0

bzoj1858: [Scoi2010]序列操作(线段树)

题目传送门 。 解法: 线段树。 因为01要交换。 所以0和1的信息都要维护。 维护最长连续一段,总数,从左端点连续,从右端点连续。 然后打上覆盖和翻转标记。 不允许两种标记同时存在。 如果要打覆盖标记,那么翻转标记就没用了。 如果打翻转标记,那么覆盖标记取反就行。 代码实现...

2018-04-16 13:13:07

阅读数 70

评论数 0

bzoj3747: [POI2015]Kinoman(线段树)

题目传送门 。 解法: 线段树。 枚举左端点,用线段树维护以每个点作为右端点的答案。 对于不同的左端点,右端点的答案是不一样的。 设当前位置为i,电影为x,好看值为w,下个出现的位置为nxt。 在统计完以i为左端点的答案后。 我们需要往下枚举左端点。 这时候我们就算过了i这个位置...

2018-04-07 16:52:33

阅读数 52

评论数 0

bzoj3212: Pku3468 A Simple Problem with Integers(线段树)

题目传送门 。 解法: 线段树改段求段。 打懒标记。 代码实现: #include<cstdio> #include<cstring> #include<cstdlib&a...

2018-03-24 16:15:22

阅读数 46

评论数 0

bzoj4552: [Tjoi2016&Heoi2016]排序(二分+线段树)

题目传送门 神! 解法: 直接做难做。考虑线段树维护。 二分答案。大于等于答案的设为1。比答案小的设为0。 可以用线段树快速统计出区间1和0的个数。 如果是升序的话就把所有0排在前面。 降序则反之。 最后看下q这个位置是否为1即可。 代码实现: #include&amp...

2018-03-14 20:20:03

阅读数 84

评论数 0

bzoj1957: 楼房重建(线段树)

题目传送门 。。 解法: 有点玄学呀。。 区间维护两个值。 一个值维护这个区间有多少个能被看到。。而仅仅只是这个区间里面不受区间外的影响。 一个值维护区间最大斜率。 那么怎么维护答案呢。 首先对于一个区间。分成两段,分别为左区间和右区间。 左区间肯定不受右区间影响。 所以可以直...

2018-01-21 16:41:32

阅读数 122

评论数 0

bzoj1230: [Usaco2008 Nov]lites 开关灯(线段树)

题目传送门 ….. 解法: 裸线段树。。 打个lazy。。 代码实现: #include #include #include #include #include #include #include using namespace std; struct node {int l,r,...

2018-01-20 16:19:55

阅读数 142

评论数 0

bzoj3211: 花神游历各国(线段树)

题目传送门 。 解法: 线段树。 开根的话想了很久不知道整段咋开。。 然后。。 发现数字不会变。 那么一个数开几次就变成0或1了就没得变了。 那么我们就可以不动他。 那么我们记录区间最大值。 如果区间最大值小于等于1的话就不用往下开咯。 小小的优化。 开根就暴力咯。 代码...

2018-01-19 21:00:37

阅读数 104

评论数 0

bzoj1798: [Ahoi2009]Seq 维护序列seq(线段树)

题目传送门 线段树真恶心。解法: 线段树。。 整段修改的题目一般都要用lazy标记。 这道题打两个标记,一个乘标记,一个加标记。 在乘的时候一定要把加标记也乘上。 乘法分配率啊。 唯一恶心的就是标记的下放顺序。 是先加呢还是先乘呢? 肯定是先乘啦。 为什么? 如果先加的话有可...

2017-11-03 14:53:29

阅读数 182

评论数 0

bzoj4034: [HAOI2015]树上操作(树链剖分+线段树)

题目传送门 水经验。解法: 就写个树剖呗。 然后用线段树维护一下呗。 维护整一段的和。 打个懒标记。代码实现:#include<cstdio> #include<cstring> #include<cstdlib> #include<iostre...

2017-10-30 11:23:14

阅读数 200

评论数 0

bzoj2243: [SDOI2011]染色(树链剖分+线段树)

题目传送门 开心的我又看错了题目。一开始看成是一段序列了那直接上线段树不就完了呗。 打个懒标记。维护一下区间有多少种颜色以及边界都是什么颜色。 打完了代码又去看题。发现是在一棵树上。。 哦那就加个树剖呗。解法: 线段树维护四个特征值: 区间内有多少段颜色。 区间内颜色是否统一,统一的...

2017-10-23 10:46:31

阅读数 125

评论数 0

bzoj1012: [JSOI2008]最大数maxnumber(线段树)

题目传送门 这道题是线段树的一个重要的题型吧(并不清楚重不重要) 要求最后L个数的最大值并不难。 但是他的数是一个一个插进来的。 第一次遇到这种问题可能会蒙蔽。。首先先建一棵空树就行了。 每次插入的数就相当于在那个位置修改一下值就行。 然后求一求最大值。。#include<cst...

2017-09-16 15:03:18

阅读数 156

评论数 0

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