二分答案
Rayment_cc
++Rp
展开
-
NOIP2015 运输计划
Problem既然是NOIP的题目,那么…… 意料之中的偷懒不可避免SolutionActually,刚开始看这道题目的时候没有什么想法,然后就手贱点开了标签——树链剖分!!! 于是我果断就怂了,过了几天,我现在又才继续写,发现好像也不一定需要树链剖分,不过树链剖分比较好写吧可能。树链剖分我只是看了看,也没有实现了,好像就是将树分成几条链,这样就可以在链上用线段树快速维护出需要...原创 2017-10-29 22:55:29 · 488 阅读 · 0 评论 -
BZOJ 4552 TJOI2016 HEOI2016排序
ProblemBZOJSolution据说暴力分挺多的??由于是个排列,我们就可以二分答案,然后我们的问题就转化为了,判断询问的pos位与当前的mid值的大小关系。 把序列转化为01序列,那么我们在转移的时候,如果是升序排列,0就在左方,1在右方,降序排列是类似的操作,所以我们就只需要查询区间内1的个数,修改区间的数字即可。最后查询pos位是1还是0。 注意每次建树时要重置la...原创 2018-04-13 13:30:34 · 155 阅读 · 0 评论 -
BZOJ 2653 middle CTSC
ProblemBZOJSolution这道题思路很神,感觉二分答案题愈发得神了起来。我们考虑如果选择x作为中位数,把序列中所有小于x的数标记为-1,大于的标记为1,那么询问x能否作为一段区间的中位数,就相当于询问是否存在一个区间使得区间和是大于等于0的。显然我们可以用线段树维护出一个最大区间和,那么直接查它是否大于等于0即可。而x是可以二分的。 除此之外对于每个数作为中位数,...原创 2018-04-28 17:04:49 · 146 阅读 · 0 评论 -
BZOJ 3735 Pa2013Konduktorzy
ProblemBZOJSolution先喷一下这道题的提示,能继续检票的条件可以无视。我们希望能减少中途对最后答案无意义的模拟,那么考虑二分最后的位置,然后用堆模拟最后几步。 step=∑ki=1posa[i]step=∑i=1kposa[i]step=\sum_{i=1}^k \frac {pos} {a[i]} 那么二分出这个pos之后,就可以再向前推几步,然后用堆模拟...原创 2018-07-15 17:20:29 · 268 阅读 · 0 评论 -
BZOJ 2806 CTSC2012 熟悉的文章 cheat
ProblemBZOJSolution注意到答案具有单调性,不妨考虑二分答案。设f[i]表示询问串前i位能匹配的最大长度,那么我们容易写出如下dp方程,其中pi表示的是当前串能匹配的最大长度:fi=maxj∈[i−pi,i−L](fi−1,fj+i−j)fi=maxj∈[i−pi,i−L](fi−1,fj+i−j)f_i=\max_{j\in[i-p_i,i-L]}(f_{i-1}...原创 2018-08-24 14:57:36 · 253 阅读 · 0 评论 -
UOJ276 清华集训2016 汽水
ProblemUOJSolution把所有边权都减去 kkk ,那么就要求平均边权的绝对值最小。由于结果要向下取整,因此我们判定的符号应该是严格小于,即 −mid<ans<mid-mid < ans < mid−mid<ans<mid考虑点分治,把一条路径表示为 (Ai,Bi)(A_i,B_i)(Ai,Bi),其中 ...原创 2019-03-02 22:17:40 · 402 阅读 · 0 评论