随笔分类 -  基础算法 - 二分

摘要:https://codeforces.com/contest/1323/problem/D 上个题解.... 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn = 4e5 阅读全文
posted @ 2020-03-08 22:06 AaronChang 阅读(315) 评论(0) 推荐(0)
摘要:https://ac.nowcoder.com/acm/contest/3006/B 三分做法 1 #include<bits/stdc++.h> 2 #define inf 0x3f3f3f3f 3 using namespace std; 4 typedef long long ll; 5 ty 阅读全文
posted @ 2020-02-14 18:52 AaronChang 阅读(153) 评论(0) 推荐(0)
摘要:链接:https://codeforces.com/contest/1288/problem/D D. Minimax Problem 题意:给定n个数组,长度为m,从n中数组挑选两个数组,两个数组中的每一位取两者的最大值组成一个新的数组,新数组中的最小值记为c,所有组合中c的最大值 思路:题目中m 阅读全文
posted @ 2020-01-19 01:23 AaronChang 阅读(402) 评论(1) 推荐(0)
摘要:B. New Year and Ascent Sequence 题意:定义上升序列Ascent,在一组序列A中,存在1<i<j<n,使得Ai<Aj。现在给定n个序列,求n个序列两两组合的n^2个组合序列中,有多少个组合是Ascent序列。。 思路: 用两个MAX,MIN数组分别记录下每个序列的最大值 阅读全文
posted @ 2020-01-13 01:03 AaronChang 阅读(314) 评论(0) 推荐(0)
摘要:链接:http://poj.org/problem?id=2456 题意:一个数轴上n个点,每个点一个整数值,有c个奶牛,要放在这些点的某几个上,求怎么放可以使任意两个奶牛间距离的最小值最大,求这个最大值。 思路:仍然是最大化最小值,套路一样,二分最小距离,每次check即可 AC代码: 1 #in 阅读全文
posted @ 2020-01-09 17:07 AaronChang 阅读(124) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=3122 题意:一堆人分蛋糕,每人蛋糕大小一样,求最大能分多少,蛋糕必须是整块整块的,不能两块拼一起。然后注意输入F个人最后要分F+1份。 思路:很简单很水,但是精度处理很恶心,wa了很多发,直接二分蛋糕的半径就行了 AC代码: 1 #i 阅读全文
posted @ 2020-01-09 15:45 AaronChang 阅读(150) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=3258 题意:给n个石头,起点和终点也是两个石头,去掉这石头中的m个,使得石头间距的最小值最大。 思路:二分石头间的最短距离,每次贪心地check一下是否满足条件即可,具体看代码。 AC代码: 1 #include<iostream> 阅读全文
posted @ 2020-01-09 01:59 AaronChang 阅读(131) 评论(0) 推荐(0)
摘要:链接:http://poj.org/problem?id=3273 题意:FJ想把n天分成m组,每组是连续的,同一组的花费加起来算,求所分组情况中最高花费的最低值 思路:二分答案。二分整数范围内的花费,每次去check一下,check的过程贪心处理即可。 AC代码: 1 #include<iostr 阅读全文
posted @ 2020-01-09 01:54 AaronChang 阅读(187) 评论(0) 推荐(0)
摘要:链接:https://codeforces.com/contest/1269/problem/E 题意:给一个序列P1,P2,P3,P4....Pi,每次可以交换两个相邻的元素,执行最小次数的交换移动,使得最后存在一个子段1,2,…,k,这是题目所定义的f(k),题目要求求出所有的f(n),并依次输 阅读全文
posted @ 2020-01-03 23:42 AaronChang 阅读(320) 评论(0) 推荐(0)
摘要:链接:http://poj.org/problem?id=1064 题目:有n条绳子,长度分别为L[i]。如果从他们中切割出k条长度相同的绳子的话,这k条绳子每条最长能有多长?(答案保留小数点后两位,规定1单位长度的绳子最多可以切割成100份)。分析:二分搜索最大长度x。我们令C(x)为可以得到K条 阅读全文
posted @ 2020-01-03 12:06 AaronChang 阅读(293) 评论(0) 推荐(0)
摘要:题目链接:https://codeforces.com/contest/1263/problem/C 题意:给你一个数字n,求n/k有多少个不同的数 思路:首先K大于n时,n/k是0。然后k取值在1到n之间的时候进行二分即可求解。 举个例子,比如n = 11,那么k分别取值1 2 3 4 5 6 7 阅读全文
posted @ 2019-12-03 23:06 AaronChang 阅读(152) 评论(0) 推荐(0)
摘要:计蒜客题目链接:https://nanti.jisuanke.com/t/41387 题目大意:给定一组无序序列,从第一个数开始,求最远比这个数大m的数,与这个数之间相隔多少数字?如果没有输出-1,否则输出间隔了多少数字。 题解:从后往前遍历,在遍历的同时维护一个递增队列,若当前的数大于队尾就进队, 阅读全文
posted @ 2019-09-11 22:55 AaronChang 阅读(137) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=2018 题目给了一些农场,每个农场有一定数量的奶牛,农场依次排列,问选择至少连续排列F个农场的序列,使这些农场的奶牛平均数量最大,求最大数量*1000/农场的个数。 思路:题目是求是否存在一个长度不小于F的子段,使得平均数最大。 1.用 阅读全文
posted @ 2019-09-05 10:35 AaronChang 阅读(94) 评论(0) 推荐(0)