![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM_二分
Ch_zaqdt
这个作者很懒,什么都没留下…
展开
-
HDU 2141 Can you find it? (二分)
暴力的话n^3肯定会超时,如果遍历两个数组,然后二分查找另一个数组也会超时,所以这道题应该先让两个数组相加,然后遍历第三个数组,二分查找这新数组。AC代码:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespa...原创 2018-04-24 16:55:34 · 185 阅读 · 0 评论 -
Codeforces Round #526 (Div. 2) B. Kvass and the Fair Nut(思维)
题目链接:http://codeforces.com/contest/1084/problem/B 题意是有n桶水,有一个容量为s升的桶,然后输入每桶水的容量,刚开始每桶水都是满的,现在要从n桶水中抽水把s升的桶倒满,问倒满后n桶水所剩的水最少是多少。 思路我想的就是贪心,优先从水多的先抽,每次抽pre[i]-Min升,如果在这个过程中达到了s升,就不用再继续...原创 2018-12-11 04:43:11 · 558 阅读 · 0 评论 -
Codeforces Round #402 (Div. 2) D. String Game(二分)
题目链接:http://codeforces.com/contest/779/problem/D 题意是给出两个字符串str和s,然后输入len个数(len为str的长度),依次删除str中第pre[i]个字符,问最多删除可以删除多少个字符,使得s还是str的子序列。 思路就是二分答案,去Check验证,实现过程也不难AC代码:#include &l...原创 2019-01-06 16:35:21 · 158 阅读 · 0 评论 -
CodeCraft-19 and Codeforces Round #537 (Div. 2) C. Creative Snap(二分+分治)
题目链接:https://codeforces.com/contest/1111/problem/C 题意是输入n,k,a,b,表示有一个长度为2^n的区间,然后输入k个数,表示有k个超级英雄,然后输入k个超级英雄所在的位置,灭霸有两种操作,一种是删掉一个区间,如果这个区间里没有超级英雄代价就是a,如果有超级英雄代价就是这个区间长度*超级英雄个数*b,另一种操作就是将这个区间...原创 2019-02-14 16:22:47 · 132 阅读 · 0 评论 -
Codeforces Round #532 (Div. 2) E. Andrew and Taxi(二分+拓扑排序)
题目链接:https://codeforces.com/contest/1100/problem/E 题意是n个点,m条有向边,每条边都有一个权值,将某些边变向,使得图变成一个无环图,要使所有变向的边中权值最大的最小,输出这个最大的最小值和变向的边。 大致思路是二分答案,然后用拓扑排序去判断是否存在环。具体的操作是我们把每次枚举的mid作为建边的依据,把大于m...原创 2019-02-14 18:34:15 · 201 阅读 · 0 评论 -
牛客寒假算法基础集训营4 F. Applese的QQ群(二分+拓扑排序+dfs)
题目链接:https://ac.nowcoder.com/acm/contest/330/F 这道题应该是能想到用拓扑排序或者dfs去判断有没有成环的,但是对于拓扑排序来说,每次去判断都需要初始化一次,时间复杂度太大,因为我们可以题目中说了无论是否违反规则,a都能成为b的老板,所以说如果出现了一次违规的情况,之后都会存在这个违规的情况,所以每种情况的答案都是先连续输出Yes,...原创 2019-01-30 16:45:19 · 197 阅读 · 0 评论 -
Educational Codeforces Round 60 (Rated for Div. 2) C. Magic Ship(二分+前缀和)
题目链接:https://codeforces.com/contest/1117/problem/C 题意是有一艘船,输入了起点和终点的坐标,还输入了长度为n的字符串,字符串中表示第i天的风向,根据题目上的描述,每一天的风向都会使船移动一个单位,当然船每天也可以自己移动一个单位,问最少多少天能到达终点,始终不能到达就输出-1。 题目看上去是一道模拟题,但是正解...原创 2019-02-19 03:35:09 · 345 阅读 · 0 评论 -
Codeforces Round #540 (Div. 3) D. Coffee and Coursework(二分)
题目链接:https://codeforces.com/contest/1118/problem/D2 题意是有n杯咖啡,m页论文,然后是每杯咖啡所含的咖啡因,然后每天可以喝任意杯咖啡,如果这一天喝了很多杯咖啡的话,第一杯咖啡的咖啡因就是ai,第二杯的咖啡因就是ai-1,第三杯就是ai-2,一个咖啡因可以完成1页的论文,问最少需要几天可以写完这篇论文。 对于D...原创 2019-02-20 09:32:15 · 191 阅读 · 0 评论 -
Codeforces Round #544 (Div. 3) C. Balanced Team(upper_bound)
题目链接:http://codeforces.com/contest/1133/problem/C 题意是给了n个数,让你找出m个数,使得这m个数中的最大值减去最小值不大于5,求最大的m 本来感觉暴力可以写,但是不知道为什么wa8(可能姿势不太对,看别人的O(n)扫一遍也能过),然后就用upper_buond写了,先排个序,然后对于每一位去求第一个大于pre[...原创 2019-03-08 10:55:50 · 298 阅读 · 0 评论 -
Codeforces Global Round 2 B. Alyona and a Narrow Fridge(二分)
题目链接:https://codeforces.com/contest/1119/problem/B 题意是给了n个水瓶,一个高度h,现在要把这n个水瓶按顺序放到h*2的柜子里,柜子里可以有任意多个挡板(每个挡板上只能放2个水瓶),问最多可以放多少个水瓶。 思路就是二分能放多少个水瓶,将二分的值传入Check,将前mid的水瓶从大到小排下序,然后依次减就好了,...原创 2019-04-07 10:52:53 · 466 阅读 · 0 评论 -
第十五届浙江大学宁波理工学院程序设计大赛 F. Pylon Link(二分+图连通)
题目链接:https://ac.nowcoder.com/acm/contest/303/F 要求一个最小的r使得所有的塔连通,所以我们就去二分半径r,然后用bfs去判断图是否连通就好了。AC代码:#include <bits/stdc++.h>#define maxn 505#define ll long longusing namespace ...原创 2018-12-09 21:14:52 · 362 阅读 · 0 评论 -
HDU 1669 -- POJ 2289 Jamie's Contact Groups(二分+二分图多重匹配)
题目链接(POJ):http://poj.org/problem?id=2289题目链接(HDU):http://acm.hdu.edu.cn/showproblem.php?pid=1669 题意是Jamie有n个联系人,他现在要把这些人都分成组,现在已知每个人的可以分的分组,然后要求分组后最小化最大组的大小,也就是有一个limit,使得所有组的人数不大于limit,求...原创 2018-11-28 20:54:19 · 642 阅读 · 0 评论 -
Codeforces Round #521 (Div. 3) D. Cutting Out(二分)
题目链接:http://codeforces.com/contest/1077/problem/D 题意是输入n个数,然后输入一个k,要求从n个数中任意选出k个数,使得这些数的出现次数相同且最大。 二分出现的最大次数,然后去判断是否可行,因为有些数出现次数可能是k的倍数,所以要有一个除法的操作,不难理解...AC代码:#include <bit...原创 2018-12-01 10:12:44 · 207 阅读 · 0 评论 -
POJ 2110 Mountain Walking(bfs+二分)
题意是从地图的左上角走到右下角,求所走的路径中最大值和最小值的差值,输出最小的差值。先用二分去找差值,然后枚举区间,看能不能从左上角走到右下角,最后的下界即为所求。AC代码:#include <iostream>#include <cstdio>#include <cstring>#include <queue>using na...原创 2018-04-09 15:52:06 · 387 阅读 · 0 评论 -
吃货(二分)
题目链接:https://www.nowcoder.com/acm/contest/105/E 这道题一眼看上去以为是一道01背包题,然后仔细一看题,发现只需要找出不大于钱数的最大美味度就好了。但是如果直接遍历查找的话会超时,所以需要用二分去查找,还要注意的是可能会有价值相同但美味度不同的情况,所以需要进行一次预处理,让价值相同的值的最后一个的美味度最大(具体看代码)。A...原创 2018-05-02 15:25:14 · 244 阅读 · 0 评论 -
牛客练习赛16 F.选值(二分+组合数)
题目链接:https://www.nowcoder.com/acm/contest/84/F 因为题目要求最大值减去最小值的差要小于等于d,所以我们从i=2开始遍历数组,以当前的pre[i]为最大值,然后二分去查找一个最小值,然后判断两者之间的长度是否不相邻,不相邻的话用组合数求出从中选取两个数的方案数。AC代码:#include <iostream>#in...原创 2018-05-08 10:09:41 · 220 阅读 · 0 评论 -
NYOJ 586 疯牛(二分+最大化最小值)
题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=586 刚看到题目的时候感觉很难理解,又是最大又是最小的,然后仔细读一读题其实也就是让找两头牛相隔的最大值。思路就是二分查找相隔的距离,当满足题目中的要求的时候,再扩大这个距离,否则减小距离。判断方法就是遍历这些牛的距离,如果有num>=c的话就说明这个...原创 2018-05-08 11:06:13 · 282 阅读 · 0 评论 -
第十四届华中科技大学程序设计竞赛 K.Walking in the forest(二分+最小化最大值)
题目连接:https://www.nowcoder.com/acm/contest/106/K 题意是有n块石头,然后给你了他们相邻石头之间的距离,然后问在不超过k步的情况下,他能跳的最大距离的最小值。这道题要用二分去做,二分的话就是求什么就去二分什么,所以这道题我们二分所跳的最大距离,然后判断这个值是否可行,可行的话再减小这个值,否则增大这个值。判断的话,如果二分的这个...原创 2018-05-08 11:45:33 · 177 阅读 · 0 评论 -
NYOJ 306 走迷宫(二分+dfs)
题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=306 这道题题意不难看懂,让我们求最小的一个路径的差值,这道题和之前写过的一道题很类似(我觉得一摸两样),用的是bfs+二分想看的可以看一下:传送门。这道题我用的是深搜,首先我们需要求出地图中的...原创 2018-07-06 16:37:38 · 309 阅读 · 0 评论 -
HDU 1839 Delay Constrained Maximum Capacity Path(dijkstra+二分)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1839 题意是有n个点,m条边,每条边都有两个权值,一个是这条边的容量,一个是经过这条路所要花费的时间。现在要从1到n,问在t时间内,要使所走的路线的最小容量尽量大。 这道题我们可以用二分去枚举流量,然后跑dij去判断这个容量是否超过了所有边中的容量的最小值就好了。...原创 2018-10-18 09:44:31 · 174 阅读 · 0 评论 -
HDU 5971 Wrestling Match(二分图染色)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5971 题意是有n个人,m个匹配,x个good player,y个bad player,每一个匹配都有一个good player和一个bad player,问能不能根据已知信息把这n个人分成两个集合。 思路就是用染色的方法去判断能不能构成一个二分图,我们首先将col...原创 2018-11-03 21:31:03 · 217 阅读 · 0 评论 -
POJ 2112 Optimal Milking(Floyd+二分+二分图多重匹配)
题目链接:http://poj.org/problem?id=2112 题意是有k台挤奶机,c头奶牛,每台挤奶机最多可以给m奶头牛挤奶,1--k是挤奶机的编号,k+1--k+c是奶牛的编号,然后输入一个邻接矩阵,表示它们任意两点间的距离,问这些奶牛去挤奶机的过程中,跑的最远的一头奶牛的最小距离是多少。 思路就是我们先存边,然后对于距离为0的是不可到达的边,赋值...原创 2018-11-30 14:03:51 · 148 阅读 · 0 评论 -
Codeforces Round #562 (Div. 2) C. Increasing by Modulo(二分+贪心)
题目链接:https://codeforces.com/contest/1169/problem/C 题意是输入n和m,然后输入n个数,有一种操作每次选k个数,使得这k个数+1然后再取余m,问至少要多少次可以使这个序列变为非递减的序列。 我们可以二分操作数,然后根据贪心去改变每个数的状态,直接看代码吧不是很难理解。AC代码:#include <...原创 2019-05-28 10:48:38 · 415 阅读 · 0 评论