摘要: 【SYZOJ279】滑稽♂树(树套树) 题面 "SYZOJ" "CJOJ" 题目描述 zzsyz实验楼里面种了一棵滑稽树,只有滑稽之力达到大乘期的oier才能看到。虽然我们看不到,但是还是知道一些信息: 这真的是一棵树,由n个节点,n 1条边联通。一号滑稽果同时也是整棵滑稽树的树根。 滑稽树上每个节 阅读全文
posted @ 2018-03-13 21:35 小蒟蒻yyb 阅读(603) 评论(0) 推荐(0) 编辑
摘要: 【BZOJ2806】Cheat(后缀自动机,二分答案,动态规划,单调队列) 题面 "BZOJ" "洛谷" 题解 很有趣的一道题啊 对于在所有的串上面进行匹配? 很明显的后缀自动机 所以先构建出广义后缀自动机 然后这个拆分很像一个$dp$ 同时,要求的东西很像一个可以二分的样子 所以二分一个答案,考虑 阅读全文
posted @ 2018-03-13 20:24 小蒟蒻yyb 阅读(327) 评论(2) 推荐(0) 编辑
摘要: 【BZOJ2733】永无乡(线段树,并查集) 题面 "BZOJ" 题解 线段树合并 线段树合并是一个很有趣的姿势 前置技能:动态开点线段树 具体实现:每次合并两棵线段树的时候,假设叫做$t1,t2$,其中要把$t2$合并进$t1$中 假设当前位置$t1$没有节点,则直接把$t2$的这个位置给$t1$ 阅读全文
posted @ 2018-03-13 17:10 小蒟蒻yyb 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 【BZOJ4991】我也不知道题目名字是什么(线段树) 题面 "BZOJ" 题解 对于线段树维护的区间维护以下东西: 区间左(右)端开始(结束)的最长(短)子串的长度 左端右端的值,以及当前区间内的答案 每次向上合并只需要分类讨论即可 阅读全文
posted @ 2018-03-13 15:35 小蒟蒻yyb 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 【BZOJ4999】This Problem Is Too Simple!(线段树) 题面 "BZOJ" 题解 对于每个值,维护一棵线段树就好啦 动态开点,否则空间开不下 剩下的就是很简单的问题啦 当然了,对于数值要离散化 没必要离线吧,在线用$map$维护就行了 cpp include inclu 阅读全文
posted @ 2018-03-13 15:32 小蒟蒻yyb 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 【BZOJ1858】序列操作(线段树) 题面 "BZOJ" 题解 这题思路很简单,细节很烦,很码 维护区间翻转和区间赋值标记 当打到区间赋值标记时直接覆盖掉翻转标记 下放标记的时候先放赋值标记再放翻转标记 这样可以维护前4个操作 对于第5个操作 维护区间从左/右端点开始的最大连续$0/1$的个数 以 阅读全文
posted @ 2018-03-13 15:30 小蒟蒻yyb 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 【BZOJ1835】基站选址(线段树) 题面 "BZOJ" 题解 考虑一个比较暴力的$dp$ 设$f[i][j]$表示建了$i$个基站,最后一个的位置是$j$的最小代价 考虑如何转移$f[i][j]=min(f[i 1][p]+Cost(p+1,j)+C[j])$ 其中$Cost$表示代价,也就是区 阅读全文
posted @ 2018-03-13 15:27 小蒟蒻yyb 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 【BZOJ2962】序列操作(线段树) 题面 "BZOJ" 题解 设$s[i]$表示区间内选择$i$个数的乘积的和 考虑如何向上合并? $s[k]=\sum_{i=0}^klson.s[i] rson.s[k i]$ 相当于是一个卷积形式 区间取相反数是一个很好处理的操作 把所有的$s[k],k\& 阅读全文
posted @ 2018-03-13 15:25 小蒟蒻yyb 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 【BZOJ1558】等差数列(线段树) 题面 "BZOJ" 题解 ~~可以说这道题已经非常毒瘤了~~ 怎么考虑询问操作? 如果直接将一段数分解为等差数列? 太麻烦了。。。。 考虑相邻的数做差, 这样等差数列变为了一段连续的相等区间 考虑怎么维护分解一段区间为最少数量的等差数列 事实上,等差数列的第一 阅读全文
posted @ 2018-03-13 15:19 小蒟蒻yyb 阅读(961) 评论(5) 推荐(1) 编辑
摘要: 【UOJ228】基础数据结构练习题(线段树) 题面 "UOJ" 题解 我们来看看怎么开根? 如果区间所有值都相等怎么办? 显然可以直接开根 如果$max sqrt(max)=min sqrt(min)$怎么办? 此时意味着虽然开根出来的值不同,但是减去的值相同 举个例子,比如$8,9$ 开根后是$2 阅读全文
posted @ 2018-03-13 15:17 小蒟蒻yyb 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 【BZOJ2957】楼房重建(线段树) 题面 "BZOJ" 题解 对于整个区间维护最大斜率以及只考虑这个区间的答案 考虑如何向上合并。 首先左半段的答案是一定存在的 所以,现在的问题就是右半段能够贡献的答案 如果右半段的最大斜率小于左半段的最大斜率,则不存在贡献 否则,如果右半段分为右左和右右两段 阅读全文
posted @ 2018-03-13 15:14 小蒟蒻yyb 阅读(372) 评论(0) 推荐(0) 编辑