二分查找
BoilTask
www.BoilTask.com
展开
-
【CodeForces】[659C]Tanya and Toys
本来是用数组的下标来存储数字 结果意识到大数存不了 所以换用数组直接存储 然后排序后通过二分查找来判断数字是否在数组里具体的过程则是考虑 剩余的钱数与数字的关系 如果钱足以买这个数字的玩具 则考虑买后剩下的钱能否再买一个其它的玩具 如果不能 则需选择一个尽可能最大价值的玩具原创 2016-03-31 07:42:01 · 336 阅读 · 0 评论 -
【Light】[1062]Crossed Ladders
可以根据题目列出一个关于c的方程原创 2016-07-26 18:04:01 · 250 阅读 · 0 评论 -
【Light】[1137]Expanding Rods
可推出关于圆弧半径r和h的方程原创 2016-07-26 18:19:52 · 345 阅读 · 0 评论 -
【NBUT】[1651]Red packet
比较麻烦的二分 需要注意的是并不是选出一个可以最lucky的 而是发完他之后 无论后面怎么发都应该是他最lucky所以可以进行二分搜索 然后判定时判断是因为mid过大还是因为mid过小原创 2016-07-26 19:45:40 · 304 阅读 · 0 评论 -
【杭电】[4907]Task schedule
因为题目数据范围很小 所以用标记法比较好理解用二分查找的话 就是先把空间时间都统计出来 然后用二分查找来找到 大于q并且最接近q的空闲时间原创 2016-07-26 19:50:36 · 226 阅读 · 0 评论 -
【CodeForces】[448D]Multiplication Table
每一行比x大的数有x/i个 所以可以进行统计 从而进行二分查找 找到第k大(大于等于它的有k个)的元素原创 2016-07-26 19:57:53 · 259 阅读 · 0 评论 -
【CodeForces】[670D2]Magic Powder - 2
题目大意:制作一个蛋糕需要n种材料,然后你有k克魔法粉,每克魔法粉可以代替任意一克的材料,ai代表制作一个蛋糕需要第i种材料多少克,bi代表你拥有第i个材料多少克,问做可以做多少个蛋糕。 判断能不能做mid个蛋糕 如果不能则减少mid的范围 以此二分查找原创 2016-07-26 20:02:07 · 363 阅读 · 0 评论 -
【CodeForces】[372A]Counting Kangaroos is Fun
给n个袋鼠以及对应大小,把较小的放到较大的口袋里,判断最后头在外面的松鼠最少多少只 能放在里面的条件是 a[i]*2<=a[j] 先把数组按照从小到大排序 若想让外面有x个 则a[0]~a[n-x]必然要被装 所以可以以此判断 进行二分查找原创 2016-07-26 20:09:14 · 384 阅读 · 0 评论 -
【CodeForces】[348A]Mafia
N个人参与一个游戏,每一局都必须有一个人出来当监督,剩下N-1个人当玩家,第i个人要求至少自己要当ai次玩家,请问最少要进行多少次游戏。 根据x次游戏能否打成进行二分查找 对于答案x的判定,先将每个人的要求加起来得到sum,然后判断x*n-sum,如果这个值大于等于x,说明可行,因为这个值就代表这些人可以提供最多的当监督的次数,只要监督的次数能够达到x次,就说明能够进行x次。原创 2016-07-26 20:13:42 · 394 阅读 · 0 评论 -
【CodeForces】[371C]Hamburgers
与【CodeForces】[670D2]Magic Powder - 2类似 同样是根据判断能不能做mid个 来进行二分查找只不过这个每个汉堡所需的材料个数 需要自己用字符串来数原创 2016-07-26 20:17:11 · 330 阅读 · 0 评论 -
【杭电】[4004]The Frog's Games
因为可以方便比较 mid是否比res大 (通过计算mid下跳过石头所需的次数) 所以可以对答案进行二分查找原创 2016-07-26 17:49:39 · 361 阅读 · 0 评论 -
【杭电】[2141]Can you find it?
因为N最大为500 所以如果开三重循环进行判断的话会超时 那么可以思考如何进行优化Ai+Bj+Ck=X ⇒ Ai+Bj=X-Ck所以可以预处理Ai+Bj 保存之后进行排序 然后对于每个询问 循环C然后在预处理中 二分查找有无X-Ck原创 2016-07-26 17:44:30 · 317 阅读 · 0 评论 -
【POJ】[3122]Pie
二分思想的运用 通过最大值到0的不断二分逼近 来寻找可能的最大值有别于二分查找在数组中找某一个数 这里不需要对数组进行排序 因为判断的是当前mid可以分的个数 如果分的少了 说明需要小些 反之则说明可以大一些 如此循环则可以不断逼近正确结果其它需要注意的就是需要注意 数据精度问题原创 2016-04-01 20:18:09 · 267 阅读 · 0 评论 -
【POJ】[3273]Monthly Expense
二分法 答案符合的条件是让 可以分的月数不大于m注意一旦有单一元素超过x 则x肯定不是解原创 2016-04-25 20:27:41 · 486 阅读 · 0 评论 -
【POJ】[3061]Subsequence
刚开始感觉排序一下从大到小取 结果忽略了“子序列”的意思也就是不能改变顺序 20160430补充: 一个月进步感人 二分结果 一次AC原创 2016-04-01 22:45:04 · 299 阅读 · 0 评论 -
【Light】[1076 ]Get the Containers
把n个数划分m组 找出所有可能的和的最大值里面的最小值二分思想 在 l~r 的区间里查找结果原创 2016-04-21 21:08:15 · 322 阅读 · 0 评论 -
【Light】[1048]Conquering Keokradong
和【Light】[1076 ]Get the Containers是一个问题 不过这个在找到最大值的最小值后 需要把组合方式也输出 优先组合前面的数字需要注意的是 有可能在找完之前就组合完成了 所以后面的就不用再进行组合了原创 2016-04-22 08:47:15 · 304 阅读 · 0 评论 -
【POJ】[2456]Aggressive cows
最大化最小值 也是通过二分来寻找解 不断来对mid进行判断 是否符合题意判断是否符合时 可以想到把第一个牛放在第一个 之后选取相隔大于mid的牛舍 如果可以选取的牛舍大于C 说明mid可以选取 那么继续往大距离查找原创 2016-04-24 18:55:39 · 413 阅读 · 0 评论 -
【POJ】[3258]River Hopscotch
也是一道**化最*值的题 掌握技巧之后这种题还是很简单的思路都是通过二分来查找答案 然后判断这个答案符不符合要求 这样的话便可以不断二分 来缩小答案所在区间大小这一题判断答案是否符合的方式 如果最小值是x 那么若想让答案成立 需要去除几个石头 很显然 若想要让答案符合条件 需要去除的石头需要 cnt<=m通过二分 便可以找到让答案符合的 最大的那个res原创 2016-04-24 19:53:30 · 314 阅读 · 0 评论 -
【杭电】[2199]Can you solve this equation?
二分搜索答案 与Y进行比较可知道mid与res的大小关系 注意x的取值为0~100 因为函数f(m)=8*m4+7*m3+2*m2+3*m+6 在0~100上单调递增 所以如果Y<f(0)||Y>f(100)是没有结果的原创 2016-07-26 17:01:23 · 343 阅读 · 0 评论 -
【POJ】[1064]Cable master
对结果进行二分搜索 计算当前的mid可以分多少份 与k进行比较 判断条件也很好写然而……这是卡精度的一题 需要注意的是因为题意 所以最后结果不可以四舍五入 需要进行舍弃而进制转换和double的灵异机制 导致这一题最后的数据处理会很麻烦这里是因为逼得…… 所以用了一种很逗的方式输出……原创 2016-07-26 17:36:00 · 285 阅读 · 0 评论 -
【CodeForces】[274A]k-Multiple Free Set
要求y=x*k不与x同在同一集合的集合元素最大数 则可考虑把有k倍关系的删除一个 那么因为大数有可能还是其他小的数k倍数 所以优先把较大的数删除二分查找在这里可用作搜索x的k倍数存不存在 从而使查找的时间复杂度降为O(logn)原创 2016-07-26 20:21:52 · 378 阅读 · 0 评论