
二分
16bit戦争
这个作者很懒,什么都没留下…
展开
-
BZOJ 2756 SCOI 2012 奇怪的游戏 二分+最大流
题目大意:给出一个棋盘,上面有一些数字,每一次可以将相邻的两个数字一起加一。问最少的次数使得整个棋盘上的数字都相等。思路:基础思路:二分最少的相等的数字。将棋盘黑白染色,每次操作一定会使一个黑子和一个白子加1,建立二分图,S向所有白点连边,所有黑点向T连边,流量为每个点到达需要相等数字的需求大小。相邻的黑点和白点连边,f:INF。然后跑最大流看是否满流就可以了。但是这个题需要多想一原创 2015-01-09 08:57:45 · 971 阅读 · 0 评论 -
BZOJ 2600 IOI 2011 ricehub 二分
题目大意:给出粮食的位置,给出初始的钱数,问粮仓设在哪里会让收到的粮食最多。粮食运到粮仓需要花费|x - x'|的费用。思路:看到L和B的范围都大的惊人,只能从R来下手。能不能从每个粮食的位置入手来搞点什么。首先要想收购的尽量多,收购的粮食应该是一段连续的区间。对于每个粮食的位置,以这个粮食的位置为起点所能够收购到的粮食是单调的。这个就可以二分来确定了。一段区间内到达所有点最近的点原创 2015-01-16 13:54:57 · 823 阅读 · 0 评论 -
BZOJ 3238 AHOI 2013 差异 后缀数组+单调栈
题目大意:思路:一看各种后缀那就是后缀数组没跑了。求出sa,height之后就可以乱搞了。对于height数组中的一个值,height[i]来说,这个值能够作为lcp值的作用域只在左边第一个比他小的位置到右边第一个比他小的位置。这个东西很明显可以倍增RMQ+二分/单调栈。之后就是数学题了Σlen[Ti] + len[Tj] = (len + 1) * len * (len原创 2014-12-30 20:11:06 · 792 阅读 · 0 评论 -
BZOJ 2258 pku2758 Checking the Text 文本校对 Splay+Hash+二分
题目大意:初始给出一个字符串,下面有一些操作,可以在一个地方加一个字符,询问从两个地方开始最长的匹配长度。思路:Splay维护Hash值,询问的时候二分一下就行了。它条件给的比较恶心,注意处理的时候按照他说的做就行了。CODE:#define _CRT_SECURE_NO_DEPRECATE#include #include #include #inclu原创 2015-01-21 14:46:40 · 1163 阅读 · 0 评论 -
BZOJ 3613 HEOI 2014 南园满地堆轻絮 二分+贪心
题目大意给出一个数字序列,要求将这个数字序列变成单调不降的序列。若原来的数字是A[i],变化之后的数字是B[i],那么花费是|A[i]−B[i]||A[i] - B[i]| 。求出一种方案,使得最大的花费最小。思路一眼就能看出是二分,然后贪心什么的随便yy一下就行了。CODE#define _CRT_SECURE_NO_WARNINGS#include <cstdio>#include <cstr原创 2015-03-05 20:00:31 · 993 阅读 · 0 评论 -
BZOJ 2654 tree 二分+最小生成树
题目大意给出一些边,每个边有一个边权和颜色。现在要求出最小边权有need个白边的生成树。输出这个边权。思路在白边上加一个权值,这样就可以人为的改变白边出现在最小生成树。这个东西显然可以二分。之后取一下最小值就可以了。CODE#define _CRT_SECURE_NO_WARNINGS#include <cstdio>#include <cstring>#include <iostream>#原创 2015-03-27 17:24:13 · 1205 阅读 · 0 评论 -
BZOJ 2440 中山市选 2011 完全平方数 莫比乌斯函数+二分
题目大意给出一个数k,求第k个不是完全平方数个数的数字(这里的完全平方数并不包括1)。思路首先介绍一下莫比乌斯函数(Möbius): μ(x)=⎧ ⎩ ⎨ ⎪ ⎪ ⎪ ⎪ 1(−1) k 0 x=1能分解成k个不同的质因数的乘积其他情况 \mu(x)=\left\{\begin{aligned}&1&x = 1 \\&(-1)^k&能分解成k个不同的质因数的乘积\\&0&其他情况\原创 2015-03-27 20:42:57 · 1036 阅读 · 1 评论 -
BZOJ 1532 POI 2005 Kos-Dicing 最大流+二分
题目大意给出一些比赛,每场比赛有一个人会胜出,问胜出最多次的人最少胜出多少次。思路首先二分答案,转化成判定问题。观察题目,注意到每场比赛只有一个人胜出,那么这可以成为网络流建图流量限制的依据。 具体: S->每个人 f:二分的最大胜出次数。 每个人->他参与的比赛 f:1 每场比赛->T f:1 每次判断最大流和比赛是否相等。CODE#define _CRT_SECURE_NO_WARNI原创 2015-04-09 15:48:54 · 1311 阅读 · 0 评论