![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分
文章平均质量分 84
WA是一笔财富
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #388 (Div. 2)D. Leaving Auction
传送门:点击打开链接题意:有有许多人参加拍卖,问当假定某些人不参加的时候剩余的人当中谁是最终的赢家,输出他的编号和最终竞价,注:每个人都不能和自己竞价,即若某人连续竞价两次,以第一次价格为准。输入数据保证竞价递增。比赛的时候根本没来及看这题。。后来补题,看懂题意感觉很简单啊,用set模拟瞎搞一发估计会超时,交上去果真超时了。。我的思想是将被去掉的人标记出来,然后按竞价从大往小找就行了,T在原创 2016-12-20 13:41:32 · 375 阅读 · 0 评论 -
POJ - 1759 Garland 二分
传送门:POJ1759题意:给出一个递推公式Hi = (H i-1 + H i+1)/2 - 1, for all 1 和首项 H1 = A,问在保证所有项都非负的情况下第n项最小为多少。思路:容易得到 Hi+1 = 2 * Hi + 2 - Hi-1,接着向后推几项就可以知道H[n]一定可以用H[2] 和H[1]线性表示,因此我们可以二分H[2],然后判断有没有小于0的项就行了,原创 2017-07-30 14:37:32 · 233 阅读 · 0 评论 -
Codeforces 817 C. Really Big Numbers 二分
传送门:Codeforces 817C题意:定义really big num为比其各位数字之和至少大s的数,问比n小的数中有多少个really big num。思路:怎么也没想到是二分啊。。主要是没想到(x-x的各位数字之和)是单调不减的。。。代码:#includeusing namespace std;#define ll long longint a[1000010];原创 2017-07-09 21:32:32 · 189 阅读 · 0 评论 -
51nod 1799 二分答案 思维 + 分块打表
传送门:51nod 1799题意:中文题。思路:先弄懂题目要求,其实要求的就是n!种排列中二分到最后使得r == k 的数目。然后明确知道了二分的结果位置k,那么二分的过程就是确定的,而影响二分的只有二分过程中mid位置的数相对于m的大小。因此我们先模拟对原序列做一次二分,记录二分过程中mid位置上应该有多少个大于m的,多少个小于等于m的,分别假设有x个和y个的话,那么最终答案就是原创 2017-08-16 20:23:24 · 225 阅读 · 0 评论 -
POJ - 2886 Who Gets the Most Candies? 树状数组 + 二分 + 反素数
传送门:POJ2886题意:n个小朋友在玩一种类似于约瑟夫环的游戏,定义F(p)表示p的约数个数,第p个出队的将会得到F(P)个糖,问哪个小朋友得到的糖最多。思路:首先明确我们一开始就能知道第几个出队的小朋友能得到最多的糖果,并且这还是一类特殊的数,叫反素数,定义:对于任何正整数,其约数个数记为,例如,如果某个正整数满足:对任意的正整 数,都有,那原创 2017-08-04 17:01:43 · 232 阅读 · 0 评论 -
HDU 6070 Dirt Ratio 线段树 + 二分
传送门:HDU6070题意:给出一段序列,找出其中一段子序列,使得子序列中不同元素个数除以子序列元素总数最大。思路:先贴上官方题解:二分答案midmid,检验是否存在一个区间满足\frac{size(l,r)}{r-l+1}\leq midr−l+1size(l,r)≤mid,也就是size(l,r)+mid\times l\leq mid\times (原创 2017-08-04 19:59:20 · 227 阅读 · 0 评论 -
Codeforces 732d Exams
传送门:Exams题意:有n天和m门考试,每场考试都需要一定的准备时间,每天可能能考其中一门也可能不能考试,问最短多少天能考完所有科目。明显的贪心题目,当时想到了从后往前贪心,只是没想到用二分去做,还是太水啊。#include #include #include #define M 100005using namespace std;int test[M],time[M],boo原创 2016-10-21 16:31:57 · 278 阅读 · 0 评论 -
HDU - 5855 Less Time, More profit 最大权闭合子图 + 二分
传送门:HDU 5855题意:有n个工厂,m个商店 每个工厂有建造时间ti,花费payi 每个商店和k个工厂有关,如果这k个工厂都建造了,那么能获利proi 问你求收益(∑pro−∑pay)≥L时,首先满足时间t最小,其次是收益p最大显然要满足最长的时间最短要二分,我们将商店向工厂连边,由于商店需要的所有工厂都要建设才能使商店获利,因此显然最后选择出来的原创 2017-09-13 17:02:20 · 193 阅读 · 0 评论 -
HDU - 5046 Airport 二分 + DLX可重复覆盖
题意:给定n个城市的坐标,要在城市中建k个飞机场,使任意城市距离最近的飞机场的最大值最小,求这个最小距离。思路:最大值最小化是典型二分条件,然后就是如何check,将每对距离小于二分值的两个机场称为互相可覆盖,构造n * n的矩阵,机场之间有覆盖关系的置为1,否则为0,则转化为DLX求解矩阵可重复覆盖问题。DLX精确覆盖详解:点击打开链接 (想不会都难)DLX重复覆盖与精确覆盖:点击打原创 2017-10-02 19:53:48 · 268 阅读 · 0 评论 -
CodeForces - 862E Mahmoud and Ehab and the function 二分(思维题)
传送门:Codeforces 862E题意:给出长为n的a序列和长为m的b序列,求.的最小值,其中0 还有q次操作,每次操作将a[l..r]区间内的数 + x, 每次操作后求一次f(j)的最小值思路:容易得到无论a序列的数怎么变化,每个位置上的数的加减性质是不会变的,即奇数位置上的数一直是加,偶数位置上的减,因此我们将f(j)的值拆成a序列的贡献和b序列的贡献两部分,无论j怎么原创 2017-10-03 22:12:35 · 249 阅读 · 0 评论 -
POJ - 3662 Telephone Lines 二分 + 最短路
传送门:POJ3662题意:有n个点,其中m对可以连边,但是有不同的花费,现在要求将1和n连通,你可以先选k对点使其免费连上,剩下的需要你自己花钱,定义费用为需要你花钱的边中花钱最多的那条边,问最小费用是多少。思路:显然尽量让长的边都免费是最优的,因此我们可以二分花费第k+1大的边(也就是答案),然后用最短路进行检查,看看能不能只用k条比mid费用大的边就能让1和n连通,由于比mid小的边原创 2017-07-30 14:21:47 · 369 阅读 · 0 评论 -
POJ - 3685 Matrix 二分套二分
传送门:POJ3685题意:给定一个矩阵的通项公式,问第m大的数是多少。思路:根据 i2 + 100000 × i + j2 - 100000 × j + i × j 我们可以发现,对于固定的j,式子整体值的变化是随i的变化单调的。因此我们可以先二分答案,然后检查是否满足的时候对每一列再用一个二分,这样时间就够使了。因为会出现大小相同的元素,因此二分的时候一定要注意条件的原创 2017-07-30 14:06:32 · 240 阅读 · 0 评论 -
Constructing Roads In JGShining's KingdomHDU1025
传送门:HDU1025题意:抽象出来就是给你两条线,线上有许多点,然后给定点对之间能连线,但是连线不能交叉,问最多连多少条线。再抽象一层的话其实就是最长递增子序列。但这个题数据量稍大,传统的O(N^2)复杂度过不了,就需要使用一种O(NlogN)的方法了,但是要注意这种方法只能求最长上升子序列的长度而无法求出序列,因为它采用的是一种转化替代的思想,具体思想个人感觉只可意会不可言传,可以原创 2017-01-15 19:52:20 · 165 阅读 · 0 评论 -
CodeForces - 363D Renting Bikes
传送门:CodeForces - 363D 题意:有n个人去买车,每个人都有自己的钱,还有一定量的钱a是公用的,每个人最多买一辆车,问最多能买几辆车?买最多的车的基础上最少花多少每人私有的钱?思路:一开始我是写的纯贪心,不用别人说连我自己都觉得不对。。果不其然wa了,后来某宇巨说要二分+贪心,仔细一想好像是的,因为贪心只能用来验证买k辆车钱够不够,而不能单纯贪心的去考虑最多买多少辆车,至于原创 2017-02-24 11:34:55 · 335 阅读 · 0 评论 -
Lost Cows POJ - 2182 线段树||树状数组+二分
传送门:POJ 2182题意:给定一个序列每个数的逆序数(第一个逆序数个数默认为零,不给出),求原序列。思路:这题和POJ2828有些相似,如果用线段树做基本一样了,都是维护区间内还有几个空位。但这个题我是用树状数组+二分做的,这样做的核心思想:序列中第n个数的逆序数应该是其逆序数+1,第n个数确定后,以此类推能确定第n-1个数。。。一直到第一个数。详见代码:#include原创 2017-03-18 22:23:34 · 285 阅读 · 0 评论 -
Ombrophobic Bovines POJ - 2391 floyd+二分+拆点+最大流
传送门:POJ2391题意:有n个牛场,每个牛场有初始牛群和一个避雨棚,每个牛场的避雨棚都有自己的最大容纳量,某些牛场之间有道路连接,牛走过这些道路需要花费一定量的时间,问最少多长时间能让所有的牛都找到一个避雨棚。思路:这题和poj2112很相似,由于前两天刚做了poj2112,于是看完题就想到了二分+floyd+最大流,自信写完,然后样例也一遍过,还以为要1A了,然而却是无限的wa。。原创 2017-04-29 21:37:54 · 212 阅读 · 0 评论 -
Professor GukiZ and Two Arrays CodeForces - 620D 二分瞎搞
传送门:CodeForces - 620D题意:给定两个序列,可以交换两个序列中的任意一个元素,但是最多交换两次,问交换后两个序列的和的差最小是多少。思路:根据数据量显然我们可以直接暴力求出来交换零次和一次的最小差值,两次的话就不能直接暴力了,考虑优化,假设未交换时两序列差值为s,那么交换两次后(假设交换了a[i],a[j],b[u],b[v])差值为:s-2*a[i]-2*a[j]+原创 2017-05-24 18:44:15 · 226 阅读 · 0 评论 -
Optimal Milking POJ - 2112 floyd+二分+最大流
传送门:POJ2112题意:有K个产奶机(1--K)和C头奶牛(K+1--K+C),每个产奶机最多可供M头奶牛使用,并告诉了产奶机、奶牛之间的两两距离Dij(1思路:如果不加最长距离最短的限制条件的话就是一个二分图多重匹配问题,而最长距离最短者中限制条件一般都用二分来解(看题后智障如我,根本没反应过来这是个二分的典型条件。。),因此,我们可以二分答案,然后每次判断最大匹配数等不等于总牛数,原创 2017-04-26 21:23:33 · 223 阅读 · 0 评论 -
2017浙工大之江学院校赛 E 折半搜索+二分
Problem E: qwb和李主席Time Limit: 4 Sec Memory Limit: 128 MBSubmit: 422 Solved: 49[Submit][Status][Web Board]Descriptionqwb和李主席打算平分一堆宝藏,他们想确保分配公平,可惜他们都太懒了,你能帮助他们嘛?Input输入包含多组原创 2017-06-03 21:30:31 · 242 阅读 · 0 评论 -
POJ - 3111 K Best && POJ - 2976 Dropping tests 最大化平均值(二分||牛顿迭代)
传送门:POJ3111 题意:给定n种物品,每种物品有不同的vi和wi,让你从中选出k种来使得∑v/∑w最大。思路:设∑v/∑w = x,我们的目标就是最大化x,因此我们可二分x,然后判断是否存在一个集合使得∑v/∑w >= x,关键是如何进行判断,显然直接枚举所有的集合是不现实的,可以考虑将不等式变形成∑(v - x * w) >= 0 ,这样我们就可以针对vi - x * wi 排原创 2017-07-30 13:27:11 · 295 阅读 · 0 评论 -
POJ - 3579 Median 二分 + 尺取法
传送门:POJ3579题意:给出一个序列x,问这个序列产生的所有| xi - xj |的中位数是多少。思路:二分答案,然后考虑每个数的贡献,关键是检查的时候如何判断每个数的贡献,可以对排序后的序列进行二分,这样总体复杂度为n(logn)^2,但是我们还有更好的方法,将序列排序后,用尺取的思想求得每一个数的贡献,总体复杂度为nlogn。代码:#include#include#in原创 2017-07-30 13:42:09 · 426 阅读 · 0 评论 -
HDU 5008 Boring String Problem 二分 + 后缀数组
传送门:HDU 5008题意:给出一个字符串和q次询问,每次问字典序第k小的子串是哪个,若有多个字典序相同的第k小字符串,输出起始点最小的那个。思路:后缀数组经典应用之一有求一个字符串的不同子串个数,由于后缀数组的后缀都是按字典序排好序的,因此每个后缀贡献的子串也是排好序的,这样我们可以搞一个不同子串个数的前缀和数组,然后就可以二分求出一个解来了,但是这个解不一定是起始点最小的解,因此我们原创 2017-10-13 16:45:17 · 312 阅读 · 0 评论