![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分查找
Cry_Kill
坚持自己的梦想
展开
-
Codeforces 812 C Sagheer and Nubian Market
题目链接:http://codeforces.com/contest/812/problem/C题意:他给你n个数字,给你一个最多能花的代价,让你求最多能买多少的东西,只是他每个物品代价和要买多少个物品有关系(如买k件物品,则代价为 Axj + xj·k )题解:第一个想法就是二分,二分每次要买的东西个数,每次在按那个规则排序就能写出来了(PS居然是因为精度问题一直在wa,最后才发现)#includ原创 2017-06-02 17:56:45 · 562 阅读 · 0 评论 -
HDU 2295 Radar(二分+DLX重复覆盖)
题目地址 题意:有n个城市,m个可以装雷达的地方,你的资金最多只能装k台雷达,问在这个限制条件下雷达的最小覆盖半径为多少。 思路:二分枚举半径长度,然后通过这个限制条件去建立矩阵(行为该雷达能覆盖的地方,列为该地方能被多少个雷达覆盖),当这个m*n的矩阵建好以后跑一边DLX重复覆盖就好了,当需要删除的行数大于k时就增大半径长度,反之减小。原创 2017-10-01 12:01:56 · 358 阅读 · 0 评论 -
HDU 3715 Go Deeper(二分+2-SAT总结)
题目地址 题意:给你一个递归函数如下(转成C语言):void go(int dep, int n, int m) { if (dep < m && x[a[dep]] + x[b[dep]] != c[dep]) { go(dep + 1, n, m); }}问你个构造一个x数组,使得他的递归层数最多,最多为多少。原创 2017-09-21 19:04:12 · 396 阅读 · 0 评论 -
HDU 1816 Get Luffy Out *(2-SAT+二分)
题目地址 题意:给你n串钥匙,每串钥匙有2把不同编号的钥匙,有一栋m层楼高的房子,每层有2个门,告诉你每个门要的钥匙,可能不同的门有相同的扼钥匙,但是一把钥匙打开了一个门,开完以后就会消失,问你最多能上几层。 思路:一看就是两判性的问题,两判性的问题解决方法就是2-SAT(说了不知道多少遍了),建图就老老实实建,判断一下他的限制关系:把每个钥匙拆成两个点(一个为选这把钥匙,一个为不选),然后二选原创 2017-09-20 23:05:51 · 257 阅读 · 0 评论 -
HDU 1815 Building roads(二分+2-SAT)
题目地址 题意:给你n个农场,S1场地以及S2场地的坐标,要求每个农场要不与S1连,要不就与S2连,并且每个农场之间的连接距离(曼哈顿距离)的最大值最小,现在告诉你a条不可连接限制,表明两个农场不能和同一个场地连接,又给出b种连接限制,表明两个农场要和同一个场地连接。 思路:我们进行二分枚举最大距离,然后来用2-SAT来判断这个距离的可行性,这里的思想与HDU 3622 Bomb Game的思想原创 2017-09-20 14:42:50 · 440 阅读 · 0 评论 -
HDU 3622 Bomb Game(2-SAT+二分)
题目地址 题意:给你n组炸弹,每组有2个炸弹告诉你两个炸弹的坐标,让你在每一组中选择一个炸弹放置,有以下要求每一组有且仅选一个炸弹。每个炸弹的爆炸范围相同不能存在炸弹有重复炸到的地方求出最大的爆炸范围半径。 思路:二分枚举爆炸范围的直径(因为后面判断炸弹是不是有重复炸到的地方要用直径去算),然后按照要求去找到每个炸弹之间选择的限制条件,当第i组炸弹的第一个炸弹与第j组炸弹的第一个炸弹的距原创 2017-09-19 15:35:54 · 424 阅读 · 0 评论 -
HDU 6216 A Cubic number and A Cubic Number(思维)
题目地址 题意:给你一个素数num,求有没有两个立方数的差是这个素数。 思路:只有两个相邻的立方数的差是素数,所以我们枚举出每一个差,记录在数组里面,然后通过二分查找,看看能不能查到这个数就好了。原创 2017-09-17 23:37:08 · 463 阅读 · 0 评论 -
POJ 2112 Optimal Milking(多重匹配+floyd+二分枚举)
题目地址 题意:有k个奶牛,c个挤奶站,每个挤奶站能挤m个奶牛的奶,求最小的最长的奶牛到挤奶站的距离 思路:通过floyd先把每个奶牛到挤奶站的最短距离预处理出来,然后二分枚举最长的奶牛到挤奶站的距离,把小于这个的距离新建一个图,对这个图求多重匹配,根据是不是有n个匹配来调整二分区间逼近最后的结果。 PS:多重匹配要注意从有多重数据的点来枚举,因为这题判断的是能不能有n个匹配。原创 2017-08-19 16:48:35 · 260 阅读 · 0 评论 -
Codeforces 832 C Strange Radiation
题目地址 题意:就是告诉你每个人的位置,速度,以及行进方向,让你求出把一个炸弹放在某个位置上的全部人出去的最短时间,炸弹爆炸产生的冲击波会给相同方向的人应该s的速度使得它的速度为v+s 思路:二分时间,通过时间来求向右和向左的区间,如果区间有交集,就是可以放炸弹原创 2017-07-27 23:46:32 · 483 阅读 · 0 评论 -
HDU 6070 Dirt Ratio(区间最优比率)
题目地址 题意:给你一个序列,让你选择一个区间[l,r],区间中的不同元素的个数/区间长度最小,求出这个最小的AC率。 size(l,r)/(r-l+1)<=mid -> size(l,r)+l*mid <=(r+1)*mid思路:二分AC率,用线段树去维护算出哪个区间能满足这个条件原创 2017-08-10 16:01:06 · 411 阅读 · 0 评论 -
Codeforces 834 C The Meaningless Game(二分)
题目地址 题意:告诉你两个人的初始分都是1,他会进行若干盘游戏,每盘游戏选定这个自然数k,然后比赛,赢的人得到k^2分,输的人得到k分,然后告诉你终止分为a,b,问这个终止分是不是对的。 思路:因为两人都会是全部k的乘积的倍数,所以二分枚举全部k的乘积得到sum,如果sum^3=a*b,则那么这个值是对的,最后判断下是不是a和b都是这个的倍数以及sum^3=a*b就好了。原创 2017-07-31 11:05:21 · 342 阅读 · 0 评论 -
HDU 2871 Memory Control(线段树区间更新,延迟更新+vector+二分)
题目地址 题意:操作系统内存分配,拥有4个操作:Reset:释放所有内存New x :从内存编号1开始分配一个x的空间,能发下则输出这个区间的头地址,如果放不下则输出Reject NewFree x:释放包含x的那个区间,并且输出那个区间的头地址与尾地址,x这个地方不能被释放则输出Reject FreeGet x:得到第x个区间的头地址,如果这个区间不存在,输出Reject Get原创 2017-07-22 01:07:48 · 402 阅读 · 0 评论 -
HDU 1839 Delay Constrained Maximum Capacity Path(最短路+二分搜索)
Delay Constrained Maximum Capacity PathTime Limit: 10000/10000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 1856 Accepted Submission(s): 611Problem Descriptio原创 2017-06-03 09:04:35 · 214 阅读 · 0 评论 -
HDU 3656 Fire station(巧妙的二分+DLX重复覆盖)
题目地址 题意:给你n个城市,在这个n个城市中要修m个消防局,问在这个限制条件下使得每一个城市发生火灾所需要的最大救援长度最短,最短为多少。 思路:和HDU 2295 Radar一样,但是我们这里就不能直接二分枚举距离了,我看别人博客学到了一个巧妙的二分方法,因为要求最短,那么最短肯定是恰好是某个城市到消防局的距离,所有我们把城市与城市之间的距离离散出来,这样的话我们二分搜索下标,这样的话二分的原创 2017-10-01 20:48:20 · 726 阅读 · 0 评论