二分
weixin_44019404
这个作者很懒,什么都没留下…
展开
-
Gym-102082K
贪心二分。首先,我们可以把a数组,b数组先排序,进行贪心的匹配。把他抽象成一个二分图,当b[i]>a[j]的时候,i向另外一侧的j~n的所有点连边。故每一个a数组的i,管理这一部分b数组的区间,j~n,我们贪心的从小打到选,即可维护出最大赢得数量。同样,我们可以观察出单调性,即,对于a的数组的i,如果保持最大赢得局数不变的情况下,i只能管理j~j’这个区间。所以我们可以二分j’这个点。当...原创 2020-04-13 15:02:32 · 232 阅读 · 0 评论 -
2020 CCPC Wannafly Winter Camp Day1 I- K小数查询
分块+暴力。对于每一块来说。如果更新不是一整块,我们直接暴力重构,如果是一整块更新的话,就给这一个块打上一个标记。当询问的时候,我们二分答案,对于不是一整块的区间,暴力。对于是一整块的区间,我们优先判断他和标记的大小。如果标记更大,那么由于这一道题更新的时候,区间只取min,故块中的所有数据不会因为更新而变的更大,因此,我们直接在块里面进行二分得答案。(如果这个块不是一整块更新,那么一定被重...原创 2020-03-06 21:24:50 · 167 阅读 · 0 评论 -
第三天打卡 Educational Codeforces Round 73 (Rated for Div. 2)
A:题意:给一串数列,两个相等能够合并,问是否能凑成2048从211开始,往下遍历,每一次如果有数字,那么*=2,看最后加和是否大于等于需要的即可#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<cstdlib>#inc...原创 2019-12-08 10:35:31 · 84 阅读 · 0 评论 -
J - Life Forms POJ - 3294
后缀数组加上二分。(其实单调栈也行,二分也是因为其单调性)首先,我们如果利用two pointers的思想来看,从lf出发,rt不断往前面跳转,公共子串长度为min lcp(lf,rt),当且仅当lf到rt之间,字串出现在了n/2个主串时候停止。那么这个时候如果rt再往下走,依然满足题意,但同时,因为求的是最长字串,我们往下走取得是min(lcp(lf,rt))所以对于答案来说,不会有正向收益...原创 2019-12-05 22:14:50 · 79 阅读 · 0 评论 -
F - MEX Queries 线段树上二分 离散化端点 细节lazy标记
题意:给出三个操作:1 区间置12.区间置零3.区间反转,零变1,1变成0;每一次操作过后,求出第一个零开始的位置。端点直接到了1e18,longlong级数了,所以肯定是先离散化端点,而这里我们求的并不是区间信息,而是只需要看这区间是否是1或者0,所以离散化后不需要+1操作。置1,置0,基本操作,区间更新,推至lazy标记。区间反转,基本操作,tree[root]=(区间长度-t...原创 2019-10-05 20:08:50 · 134 阅读 · 0 评论 -
kuangbin带你飞--线段树二
j题意:每一个人都有一个boss,没有boss的那一个人是最终大boss,每一次发放任务个x,他的所有的以他为boss的人也就是说子树(包括自己)全部都开始做这个任务。我们可以看到这一棵树是无序的,而且是并不是二叉树,所以就需要转换。既然跟子树有关,我们就深度优先遍历,用dfs来建立序列,一个点有开始和结束的编号,他的所有子树的编号一定会在开始和节点之间,这样子就可以做到区间更新。所以我...原创 2019-09-20 12:33:10 · 79 阅读 · 0 评论 -
kuangbin带你飞----线段树专题一(基础操作,单点,区间更新和查询)
A题意:给出q个询问,单点更新和查询主要是注意模板的书写#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<cstdlib>#include<climits>#include<stack>#...原创 2019-09-18 19:00:46 · 179 阅读 · 0 评论 -
Cutting Bamboos
每一个剪掉的高度是可以计算出拉爹,然后二分出高度,然后用主席树查询,大于这个高度的个数有多少个,乘以高度-二分的高度,然后与每一次需要剪掉的高度进行对比即可。#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<cstdlib>...原创 2019-09-06 11:04:17 · 95 阅读 · 0 评论 -
CF Stressful training优先队列加二分搜答案
明显的二分搜答案,整体思路很好把握,但是2300分的题,总归有点门头的。如果是裸的二分搜答案,我们只需要longlong右边界,然后二分答案,并带入答案,进行判断,模拟n*k的复杂度,然后就会和我一样TLE 。。。所以里面模拟如何模拟需要重新思考一下。暴力模拟肯定是错误的。我们可以进行贪心。我们可以计算出,哪一个,是马上需要充电的,那些是,可以不急的。这里就算计算出还能撑多少天,是一样...原创 2019-04-08 21:17:21 · 223 阅读 · 0 评论 -
poj1759二分变异
二分。可以证明的是,第二个灯的高度和b的高度是映射的,所以二分查找第二个灯的高度就好了。自己头铁搞了半天的递推公式,其实拿数组记录就好了,当时写了一行 就反应过来了,不过太懒了就没有改了结果多弄了半个小时。。。#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;#include&lt原创 2019-03-13 20:14:00 · 110 阅读 · 0 评论 -
POJ 2976 二分和浮点转化
二分搜索二分公式的来源:假设有sumi=1naisumi=1nbi\frac{sum_{i=1}^n{ai}}{sum_{i=1}^n{bi}}sumi=1nbisumi=1nai=max(x),那么改变一下顺序就有∑i=1n(ai−x∗bi)\sum_{i=1}^n{(ai-x*bi)}∑i=1n(ai−x∗bi)所以只需要一个数组,存储下来求和的值,在排序,取前n-k个数字求和,...原创 2019-03-13 15:48:20 · 142 阅读 · 0 评论 -
POJ 3258最小最大值
二分搜答案。这是一个最大最小值问题,用二分找到一个数字,表示最小距离,带入到石头里面,看能否满足至少有m-n个石头块能够满足最小距离x。不断二分去找到最大值。#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;#include&lt;cmath&gt;#include原创 2019-03-13 15:03:58 · 161 阅读 · 0 评论 -
二分搜索
解决有序数组中,查找某个值。假定一个解,并判断是否可以行。最大值最小化。最小值最大化。最大化平均值。其中最大化平均值,求的是平均值,二分知道的答案为x。需要做一下变化,变换成为xi-yi*x>=0这种形式,然后贪心排序,找前k个是否满足大于等于零这个条件。不行的话就继续二分。直到找到结果。...原创 2019-03-11 21:45:38 · 81 阅读 · 0 评论 -
poj2456 最大平均值
二分搜答案。做最大最小值,最小最大值,最大平均值,最小平均值都可以先设定一个值,然后去看符不符合题意,用二分搜索可以完全。#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;#include&lt;cmath&gt;#include&lt;cstdli原创 2019-03-11 21:22:46 · 221 阅读 · 0 评论 -
POJ 1064 保证精度二分搜答案
保存一下思路。思路很简单就是二分找答案,每次找到一个值,判断一下是否可以满足剪得个数大于等于k,然后一直找下去。主要是这里for(i,0,100)这里最开始一直卡住了,不知道设置什么,100就已经可以到10^-30了,对于二的精度来说已经完全足够了。然后就是输出,一定要注意两位小数直接pinrtf .2f的话就一定会有第三开始四舍五入,先乘以一百,地板一下,再除回去,就可以保证前两位一定是正确...原创 2019-03-11 20:30:29 · 150 阅读 · 0 评论 -
poj 3484 奇怪的输入和二分
第一次做到这种题,看了下别人的代码才写出来。首先输入恶心,他最后一行没有空格要格外的注意。所以要额外多判断一次。其次就是前缀和奇偶的问题。二分数字,查看这个数字前缀和为多少。只有偶数加偶数才等于偶数,所以第一个出现奇数和的时候,就是那个数字了。#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;algorithm&g原创 2019-03-13 22:01:23 · 156 阅读 · 0 评论