ACM二分法
二分法应用于实例
Ordinary_yfz
知乎个人主页zhihu.com/people/zyf-98-4,现在涉及CV,transfer learning,unsupervised,GAN,REID,OOL很多研究方向,会经常写一些综述/论文阅读笔记。
展开
-
POJ 2182 Lost Cows【题解报告|贪心|树状数组|二分】
题目链接题目大意每个奶牛都有一个编号,1- N 从第二个牛开始给出前面比她编号小的牛的个数,问你求牛的编号序列思路分析从后往前看,最后一头牛可以确定它的号码,因为知道了前面有k头比它小的,k+1即为它号码。记a[i]为第i头牛在它前面有多少头牛号码比它小的(即输入值),那么如何计算第k-1头牛的编号?我们从1到N进行遍历,记录a[k−1]a[k-1]a[k−1]个没有访问过的编号(没有访问过即没有被他之后的牛a[k]a[k]a[k]所使用的编号),那么第a[k]a[k]a[k]个编号即该牛的编号,原创 2020-06-30 22:38:20 · 267 阅读 · 0 评论 -
Poj 1727 Advanced Causal Measurements (ACM)【题解报告】
题目链接题目大意:给定一些点的坐标代表“事件”,每个“事件”可以有一些“因事件”,只要“因事件”的坐标落在给定不等式确定的范围之内即可。另给定数m表示至多有m个“因事件”。求对于给定的所有事件,它们的“因事件”中,最早发生的那一个事件的最迟发生时间(即最大的纵坐标)。要做这道题,首先推荐一道非常类似的题目Poj 1328题解,为什么说他们类似呢?对于这么一个最大化最小值的问题,我们显然可以联想到二分,那么最重要的问题就在于,给定一个值kkk,我们要能判断出来他能否是那个最大的最早到达时间。对于一个给原创 2020-06-17 17:47:02 · 239 阅读 · 0 评论 -
2406: Power Strings:另辟新径:easy快速幂判断字符乘方
题目大意题目链接给一个字符串a,它可以看成若干个相同的子串串联形成的,求最大串联次数n。思路分析打开题解一看大家都在KMP,孱弱瑟瑟发抖,写题时并不知道KMP,第一眼想着能不能那个二分,但是不满足单调性,于是尝试了一下从1−a.size()/21-a.size()/21−a.size()/2遍历长度lenlenlen,如果某个长度的串能经过a.size()/lena.size()/lena...原创 2020-03-28 12:21:47 · 165 阅读 · 0 评论 -
2262:Goldbach's Conjecture:埃及筛法+尺取 证明哥德巴赫猜想
题目大意题目链接哥德巴赫猜想:任何大于 4 的偶数都可以拆成两 个奇素数之和。比如: 8=3+520=3+17=7+1342=5+37=11+31=13+29=19+23你的任务是:验证小于10^6的数满足哥德巴赫猜想。输出格式对于每组数据,输出形如 n=a+b,其中 a,b 是奇素数。若有多组满足条件的 a,b,输出 b−a 最大的一组。若无解,输出 Goldbach’s co...原创 2020-03-28 10:41:26 · 381 阅读 · 0 评论 -
2112:Optimal Milking:二分法+最大流迅速解匹配问题
题意:有K台挤奶机、C头奶牛,以及他们之间距离,每只奶牛都要走到任意一台机器中,每台机器最多为M只奶牛服务,问所有奶牛都完成任务,所走的路程最远的那只奶牛,所走的路程最短可以是多少。思路显然一个二分图匹配问题,但是难点在于现在给我们的就是一张图,而且(1)有些牛和机器不是直接连接的,可以间接到达。(2)每个机器有一个容量上限。(tips:一般有容量上限的匹配问题不妨转化成网络流跑一跑),好吧...原创 2020-03-23 13:32:15 · 286 阅读 · 0 评论 -
Poj:3977-Subset:清晰题解,最小化子集之和的绝对值,折半枚举
题目给定N个整数组成的数列(N<=35),从中选出一个子集,使得这个子集的所有元素的值的和的绝对值最小,如果有多组数据满足的话,选择子集元素最少的那个思路看到与数列的和有关,思考一下可不可以尺取,发现不需要求连续数列,此时很难构造一个具有单调性的符合题意的数组供尺取法使用(欢迎有大佬指正)。在思考一下,好像也可以用二分搜索,把这个绝对值作为目标值,但是每个整数101510^{15}10...原创 2020-03-08 10:45:13 · 733 阅读 · 0 评论 -
二分法,尺取法,折半枚举,你们到底是什么?
最近写了一些题,对这三个概念稍微有点混淆,写点东西回忆一下。二分法二分法简介,将题目要求的量当做目标值,使用两个参数l,rl,rl,r,lll从初始位置(往往是最小值之类的),rrr从最终位置(往往是最大值),每次判断二者的平均值mid=(l+r)>>2mid=(l+r)>>2mid=(l+r)>>2是不是满足题意,根据该判断更新lll或者rrr的值。二分法...原创 2020-03-07 23:34:12 · 362 阅读 · 0 评论 -
Poj 3045:Cow Acrobats 猛牛叠罗汉,最大化最小值,贪心
犇:将N头牛叠成犇,每头牛的力气是sis_isi,体重是wiw_iwi,倒下的风险是身上的牛的体重和减去sis_isi,求最稳定犇的最大risk事实上,牛的叠放顺序可以确定,并且相当方便。凭感觉,力量越大、体重越大的牛应该放在越下面,否则浪费力气。所以按下面的代码排过序后就是叠放顺序,然后顺序找出最大risk即可。ProofProofProof:对于两个牛i,ji,ji,j,假设wi+s...原创 2020-03-07 08:42:27 · 221 阅读 · 0 评论 -
POJ 3273: Monthly Expense:二分法,最大化最小值
将最大月度开销的最小值作为二分查找的对象,#include<iostream>#include<cmath>#include<iomanip>#include<vector>#include<map>#include<queue>#include<algorithm>#include<str...原创 2020-03-06 18:37:27 · 314 阅读 · 0 评论 -
POJ 3258: River Hopscotch:二分法,最大化最小值
奶牛跳房子:从N块石头中移除M块,使得间距最小值最大。将间距的最小值作为二分搜索的目标,如果可以在小于等于M次操作中使得所有石头间的距离大于等于x,那么x就是一个可行解,二分法操作时,如果mid是一个可行解,那么我们进行l=mid操作,尽量使得可行解最大。#include<iostream>#include<cmath>#include<iomanip>...原创 2020-03-06 18:05:43 · 192 阅读 · 0 评论 -
POJ-3441:4 Values whose Sum is 0--多元素之和判定
原题传送门题目大意解题思路首先应该想到的是,四重for循环,遍历A,B,C,D中的每一个元素,判断它们的和是否为0。但是O(n4)O(n^4)O(n4)显然是过不了的。考虑优化1将a+b+c+d=0a+b+c+d=0a+b+c+d=0转化为a+b=−c−da+b=-c-da+b=−c−d,分别遍历A,BA,BA,B和C,DC,DC,D数组,枚举每一个a+ba+ba+b记为数组ABAB...原创 2020-02-28 21:43:48 · 382 阅读 · 0 评论 -
二分搜索总结
所谓二分法,在C++ STL中就一句话,lower_boundlower\_boundlower_bound,但是写了几道题,发现真正使用的时候其实充满了技巧。假定一个解并判断是否可行的问题最大化最小值的问题这两个问题其实联系很大,他们有着共同的思路,即(1)将所要求的结果当做二分查找的对象,确定[l,r][l,r][l,r]区间,(2)确定某个mid=(l+r)>>1m...原创 2020-02-27 11:33:44 · 235 阅读 · 0 评论 -
POJ-1064:网线主管 二分搜索
原题传送门题目大意有 NNN条绳子,它们的长度分别为 lil_ili,如果从它们中切割出KKK条长度相同的绳子的话,这些绳子每条最长能有多长?答案保留到小数点后 2位解题思路白书中所谓典型的二分搜索题,左边界从0开始,右边界从所有绳子中最长的开始,每次统计(l+r)/2(l+r)/2(l+r)/2能切割出来多少绳子,注意以下事项:(1)由于要保留满足条件的最大长度,因此如果在midmi...原创 2020-02-27 09:58:54 · 458 阅读 · 1 评论 -
Aggressive cows (POJ No.2456)--二分法例题
题意农夫约翰搭了一间有;NNN间牛舍的小屋。牛舍排在一条线上,第 iii号牛舍在 xix_ixi的位置。但是他的 MMM头牛对小屋很不满意,因此经常互相攻击。约翰为了防止牛之间互相伤害,因此决定把每头牛都放在离其他牛尽可能远的牛舍。也就是要最大化最近的两头牛之间的距离。2≤N≤1000002\leq N\leq 1000002≤N≤1000002≤M≤N2\leq M\leq N2≤M≤...原创 2020-02-27 10:51:43 · 327 阅读 · 0 评论