![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分
一种高效的log算法
为什么他们cf写的这么快
这个作者很懒,什么都没留下…
展开
-
Educational Codeforces Round 86 (Rated for Div. 2) D. Multiple Testcases(二分+贪心)
题目链接题意:给你一个初始数组,要你把他分类,每一类集合中的ai大于等于1的个数要不超过c1,大于等于2的个数要不超过c2,以此类推,要你输出最少的分类组数思路:我们先从大到小排序,然后对于每个ai我们考虑把它放进那个桶比较合适,由于要最小化桶的数量,我们肯定是能放进第一个桶就尽量放,不行就第二个,以此类推,这个过程可以二分优化,就是如果一个桶的大小+1小于等于ai的限制的话就说明能放进这...原创 2020-04-27 22:04:31 · 145 阅读 · 0 评论 -
Codeforces Round #635 (Div. 2) D. Xenia and Colorful Gems(二分)
题目链接题意:要你从数组r中选一个数x,从数组g中选一个数y,从数组b中选一个数z,使得(x-y)^2+(x-z) ^2+(y-z) ^2最小。思路:一开始想复杂了,想着要如何确定x的情况下使结果最小,其实要最小的话肯定是x<y<z,同时x和z离y很近(注意一下这只是举例并不是最终结论),于是我们发现所有的情况都可以写成x<y<z的情况,在确定y的情况用二分查找里y...原创 2020-04-19 10:01:03 · 150 阅读 · 0 评论 -
Educational Codeforces Round 28 D. Monitor(二分+二维前缀和)
题目链接思路:排序后二分答案。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=2505;struct node{ int x,y,t;}s[maxn*maxn];int sum[maxn][maxn],a[maxn][maxn],n,m,k,q;bool...原创 2020-04-08 21:34:19 · 134 阅读 · 0 评论 -
2019ICPC 沈阳重现 L-Flowers(二分)
7-7 L-FlowersRecently Jack becomes much more romantic. He would like to prepare several bunches of flowers.Each bunch of flowers must have exactly M flowers. As Jack does not want to be boring, he h...原创 2020-03-28 21:45:06 · 375 阅读 · 0 评论 -
Codeforces Round #398 (Div. 2) D. Cartons of milk(二分+贪心)
题目链接思路:二分答案,如果x能满足的话,0 1 2.。。x-1也肯定都能满足,我们优先喝即将过期的牛奶,看看能不能喝完。#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll maxn=1e6+1; ll a[maxn],k;pair<ll,int>b[maxn];...原创 2020-03-17 21:57:06 · 86 阅读 · 0 评论 -
Codeforces Round #626 (Div. 1, based on Moscow Open Olympiad in Informatics) B. Present(位运算+二分)
题目链接思路:我们知道异或的话如果某一位上1的个数是奇数的话,那么这一位最后异或出来的也是1,我们就从位数来考虑,考虑一下当前位有几个1,假设当前位为3,表示成二进制就是1000,那么我们遍历每一个元素,看看对于当前元素来说,谁加它才会满足第3位为1,假设ai+aj第3位为1的话,他的区间一定实在(111,10000】以及(10111,11111】(这里解释一下第二个区间因为ai+aj有可能相...原创 2020-03-19 20:42:29 · 343 阅读 · 1 评论 -
hdu6197 array array array(LIS+思维)
题目链接Problem DescriptionOne day, Kaitou Kiddo had stolen a priceless diamond ring. But detective Conan blocked Kiddo’s path to escape from the museum. But Kiddo didn’t want to give it back. So, Kiddo...原创 2020-03-06 21:14:21 · 109 阅读 · 0 评论 -
Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing(二分+思维)
题目链接思路:首先肯定是可以想到二分中位数,关键是怎么判断check函数?为了方便我们可以check函数是检查以当前mid为中位数时,大于等于mid的数能否达到n/2+1,注意一下判断细节即可。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=2e5+1; vec...原创 2020-02-19 20:51:13 · 114 阅读 · 0 评论 -
2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest J. The Parade(二分)
题目链接题意:给定身高为1-n的士兵数量,现在要求士兵分成k排,要求每一排士兵身高差不能超过1,求最多有多少士兵可以拿出来排。思路:又是一个裸的二分题,但是写check函数的时候确遇到了bug。。。我们可以二分枚举每排士兵的人数。这里就是注意一下,每个身高的士兵人数要累加起来求和,如果分开的话会出错。#include<bits/stdc++.h>using namespac...原创 2020-02-19 20:59:20 · 369 阅读 · 0 评论 -
Codeforces Round #587 (Div. 3) E1. Numerical Sequence (easy version)(二分+打表)
题目链接思路:由于k在int范围内,其实我们可以打表出来就是1到x位置的时候字符串的长度,比如b【10】等于56的意思是从第一个数1开始到最后一个数是10的时候整个字符串长度为56,我们把这个b数组构造出来,然后二分一下第ki个字符是在字符串的那个数字结束的。比如说ki是56,那么我们可以二分b数组,最后可以求得当k为56时,字符串最后得数字是10,剩下的就是一些边界细节。#include...原创 2020-02-21 21:03:29 · 158 阅读 · 0 评论 -
Codeforces Round #587 (Div. 3) E2. Numerical Sequence (hard version)(双重二分)
题目链接思路:这道题真的搞疯我了,各种细节各种bug,AC得很不容易,感觉还是码力不够得关系QAQ由于写得时候各种调式找问题,代码已经奇丑无比了,还是讲讲思路吧。。。。由于这里的k很大,我们已经无法向easy版本那么把b数组打表出来解决了,那么就换种思路,首先还是往当给出k的时候,判断k会落在那个数字这个方面想,我们可以一步步缩小范围,首先我们是可以确定k是在1-9、10-99、100-...原创 2020-02-21 21:17:15 · 268 阅读 · 0 评论 -
Educational Codeforces Round 77 (Rated for Div. 2) D. A Game with Traps (二分+差分+贪心)
添加链接描述#include<bits/stdc++.h>using namespace std;const int maxn=2e5+10;int n,m,k,t,c[maxn],a[maxn];struct node{ int l,r,d;}s[maxn];bool cmp(int a,int b){ return a>b;}bool check(...原创 2020-02-10 22:04:20 · 112 阅读 · 0 评论 -
2020 CCPC Wannafly Winter Camp Day1 F 乘法 (二分)
题目链接思路:很容易想到二分,只不过我的解法和题解不太一样,貌似复杂度还高一点点?不过也算一个方法吧,就是先将b数组排序,二分一个值以后,遍历每一个ai,查找b数组里有多少个数乘以ai会大于等于mid,只不过在ai为0,正数、负数的话情况是不一样的,讨论一下就行,不过细节确实也挺烦的,lower_bound边界调到崩溃QAQ。#include<bits/stdc++.h>usi...原创 2020-01-22 20:21:44 · 232 阅读 · 0 评论