
二分
文章平均质量分 62
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 1012 JSOI2008 最大数maxnumber 单调栈+二分 / 线段树
题目大意:。。。自己看 题目大意:。。。我还是说说吧 给定一个初始为空的序列 提供两种操作: 1.查询序列后Q个数字中的最大值 2.在序列尾部插入(n+t)%d,其中t是上一次查询的结果 首先我们发现 如果一个数的右面有一个比他大的数,那么这个数永远不会成为最大值 他就会被弹掉 说白了这题要维护一个单调递减的单调栈 对于每次查询我们二分查找L的位置即可 这题线段树也能写 而且大多数人写原创 2014-09-12 20:24:29 · 1963 阅读 · 0 评论 -
BZOJ 4282 慎二的随机数列 LIS
题目大意:给定一个数列,数列中的一些位置可以任意指定,求LIS的最大值首先我们可以发现一个性质:一定存在某组最优解满足所有N都在其中 这个是显然的,如果某组最优解中某个N没有被选择,那么用他挤掉他后面第一个选择了的K,答案不变然后做法就显然了,我们把K都拎出来,每个数减掉他前面N的个数,然后求出LIS,加上N的数量即为答案 证明,充分性显然,必要性: 将任意一组选择了所有N的最优解拎出来,把N原创 2015-10-09 13:39:59 · 1683 阅读 · 0 评论 -
BZOJ 1563 NOI2009 诗人小G 四边形不等式
题目大意:玩具装箱,然而指数变成了pp(p≤10p\leq10)首先我们需要证明决策单调 由于数死早,还是戳这里吧知道决策单调之后怎么办呢? 由于是1D1D,所以不能分治了每个决策点能决策的区间一定是连续的一段 并且随着决策点的右移 这个区间也在不断右移令g[j]g[j]表示决策点jj能贡献的最左侧的位置 然后我们开一个栈来维护当前存在贡献的贡献点 那么显然stack[i]stack[i]原创 2015-06-18 12:38:56 · 2547 阅读 · 0 评论 -
BZOJ 4012 HNOI2015 开店 动态树分治+二分
题目大意:给定一棵树,每个点有一个颜色,多次询问颜色在[l,r][l,r]区间内的所有点与某个点之间的距离之和,强制在线没记错的话这题我知道的有三种解法来着? (茴香豆的茴有四种写法泥萌知道嘛…?1.线段树维护虚树 2.点分治+线段树 3.分块第一种方法我不知道在线怎么搞= = (我并不知道怎么在虚树上进行点定位 第三种方法貌似内存过不去? 于是果断点分治+线段树写完发现内存还是炸了= =原创 2015-04-29 12:44:38 · 3797 阅读 · 2 评论 -
BZOJ 3885 Usaco2015 Jan Cow Rectangles 单调队列+二分
题目大意:平面上有一些红点和黑点,求一个矩形包含最多的红点,不包含黑点,在此基础上要求面积最小 首先不考虑面积最小这个条件 由于x,y 现在要求面积最小 那么我们就对于每个极大子矩形二分消去四周没有点的部分即可 时间复杂度O(n^2logn) #include #include #include #include #define M 1010 using namespace std原创 2015-03-06 14:06:02 · 1695 阅读 · 0 评论 -
BZOJ 3695 滑行 迭代+二分
题目大意:给定一个n层的区域,从左下角走到右上角,每个区域的高度和速度都不同,问怎么走最快 由于我并不知道光路最速原理所以我写了迭代+二分23333 首先易知每一层的路线都一定是一条直线 我们考虑只有两层的情况 由于左下角和右上角固定 因此我们可以三分确定中间的转折点的位置 或者可以写出时间关于转折点坐标的函数关系 求导之后二分 这个更快一些 那么现在是多层 我们这样搞: 每次迭代,枚原创 2015-03-26 14:58:24 · 1595 阅读 · 0 评论 -
BZOJ 2876 NOI2012 骑行川藏 二分+数学算法
题目大意:给定n段路,每段长度为si,如果在这段路上以vi的速度匀速行驶,那么消耗的体力为ki*(vi-v'i)^2*si,求在不超过体力上限情况下的最大速度 我去年买了个表- - 去网上百度了半天一元三次方程的求根公式才发现函数是递增的- - 百度百科写的什么NM破玩应- - 好像没讲明白- - MS只要知道拉格朗日乘数法就能差不多搞懂这道题了- -原创 2015-01-03 19:57:42 · 3330 阅读 · 0 评论 -
BZOJ 3790 神奇项链 Hash+二分+树状数组
题目大意:给定一个串,问这个串最少可以由回文串拼接多少次而成(拼接可以重叠) 首先将每两个字符之间插入占位符,然后Hash+二分搞出所有极大回文串(可以用manacher,我不会) 问题转化成了给定一些区间,求最少的能覆盖整个数轴的区间 将所有区间按照某一端点排序 然后上树状数组即可 回头还是去学学manacher吧。。。 #include #include #include #i原创 2014-12-11 15:01:32 · 1556 阅读 · 0 评论 -
BZOJ 1213 HNOI2004 高精度开根 二分+高(Py)精(thon)度
题目大意:求n^(1/m) 一大早水个Python- - 直接开根尼玛过不去- - 需要二分- - m,n=int(raw_input()),int(raw_input()) l,r=0,1 while r**m<=n: l=r;r=r*2 while l+1<r: mid=(l+r)//2 if mid**m<=n: l=mid else: r=mid if r**m<=n原创 2015-01-13 09:00:15 · 3189 阅读 · 0 评论 -
BZOJ 4724 POI2017 Podzielno 数论
题目大意:给定BB和一些数字,第i(0≤i<q)i(0\leq i<q)个数有aia_i个,要求用这些数字构造一个BB进制数,数字可以不全用,要求这个数是B−1B-1的倍数且最大逗比题……定理:一个数是B−1B-1的倍数当且仅当其在BB进制下所有位之和为B−1B-1的倍数原理是a∗Bk≡a(mod B−1)a*B^k≡a (mod\ B-1)然后如果它给的所有位之和mod B−1mod\ B-1不等原创 2016-12-12 16:53:56 · 1631 阅读 · 4 评论