
二分
二分抄代码
去了18ec没资格去19ec的反向训练选手
展开
-
F Design Problemset 2020小米邀请赛第1场
https://ac.nowcoder.com/acm/contest/7501/F思想出问题了,这题应该秒的,跟19沈阳那个贪心有点像二分答案,然后每种题目先把l[i]全部放进每个题集,如果某一种题目不够放就不行,如果每个题集的总数已经大于R了,就直接不行,在L,R中间就直接可以了,不够L就需要贪心地放剩下的对于每种题目还剩下b[i]种,那么由于每个题集的题目必须在l[i],r[i]之间,由于已经全部放了l[i]个了,不够的最多只能放(r[i]-l[i])*mid,跟b[i]取个min,然后看原创 2020-10-25 23:09:46 · 281 阅读 · 0 评论 -
codeforces1370F1 / F2 The Hidden Pair (Hard Version)
https://codeforces.com/problemset/problem/1370/F2先询问所有点,然后就可以得到一个u,v路径上的点,因为只有他们路径上的点的距离之和是最小的然后以这个点rt建树,二分到rt的长度可以找到较远的那个端点v,然后通过距离相减,再询问一下除去v到rt的那个距离的点,就可以找到另一个端点然而这个询问需要12次。。。题解的一个小优化,最远距离最小是sumdis/2,最大是sumdis,所以区间减少了一半。。。。就可以减少一次二分。。。。#inclu原创 2020-07-09 10:33:42 · 280 阅读 · 0 评论 -
codeforces1359C Mixing Water
https://codeforces.com/problemset/problem/1359/CB题wa了2发,前期劣势巨大。。然后过完c题一看board竟然只有400人过了c,运气比较好没卡住。可以知道偶数次的时候,温度都是(h+c)/2的,所以<=(h+c)/2的时候,最近的就是第二次那么只要考虑奇数次,温度为((d+1)h+dc)/(2d+1)可以看到这个东西是递减的,无穷大的时候逼近(h+c)/2那么只要二分找到最小的d使得calc(d)<t,那么最后答案要么是2*d+1原创 2020-05-29 01:37:35 · 308 阅读 · 0 评论 -
codeforces 1288D Minimax Problem
https://codeforces.com/contest/1288/problem/D卧槽这题也FST了,edu round还只看罚时,,做了E也没用啊艹这题看见最小值最大,就肯定往二分上想了,然后只要想到存在s[i] | s[j] = (1<<m)-1,就行了,那么我们先把所有s[i]存入标记数组,再把他们的子集存入标记数组,再枚举每个s[i],看他们的补集有没有被标记就...原创 2020-01-15 15:28:01 · 267 阅读 · 0 评论 -
2019徐州网络赛 B so easy
https://nanti.jisuanke.com/t/41384树状数组是天,1e6*logn*logn随便跑离散化所有点和区间,要染色的点单点作为一个点,然后两个染色点之间的区间也作为一个点,然后二分找第一个位置在哪。但是牛逼的标程用unorderd_map+并查集,f[x]存x右边第一个在哪,初始的是f[x]=x+1unorderd_map的存取查询操作都近似于O(1),m...原创 2019-09-07 20:17:35 · 428 阅读 · 7 评论 -
2019牛客多校第六场 D Move
传送门:https://ac.nowcoder.com/acm/contest/886/D这题开场0/100+....然后我让byf写了先别交,然后我写完B后再去看他的代码,发现这题不就是个sb二分吗。。。不过肯定不是,不然为撒这么多人WA后来想了想发现不是单调的,所以二分时候需要找一段区间,最后求答案也要向下找一段区间,本来以为调参要调很久,本来是每次向下找50个,最后向下找1000个,...原创 2019-08-03 17:05:40 · 415 阅读 · 0 评论 -
HDU6606 Distribution of books 2019杭电多校第三场
考场上二分以后只想了贪心,没想DP看见题解里的DP1秒想出来,卧槽巨水,完了水题也不会做了。考虑一个答案,然后dp[i]表示分配前i本书最多可以分给几个人,然后如果无法以i结尾就不更新dp数组然后把前缀和离散化,dp[i]=max(dp[j]+1),sum[i]-sum[j]<=mid ,那么就用sum[j]>=sum[i]-mid,然后二分出最小的离散化值,权值树状数组...原创 2019-07-30 00:19:08 · 698 阅读 · 8 评论 -
codeforces1007C
这是曾今一场爆炸的我的第一场div1,然后跟aols和hls一起3人下紫,紫名一场体验结束。B题一直没想到做法,然后这题我是两个数的log乘起来,log1e18=60,60*60=3600就已经超过600组了,我并没有什么办法。于是看到很多神仙代码,写的各种神仙策略的判断都过了,这里是一个比较易懂的做法。我们只确定下界,然后用二进制数字去逼近,超过就2个一起缩小,小于了就下界加上当前数字。这样的复...原创 2018-08-23 16:01:38 · 275 阅读 · 0 评论 -
codeforces1103B 二分交互题
手速场,半小时做完就开始挂机了。群里有人提出了用v和2v去比较然后我想起了曾经一道交互题是拿二进制去试探,先加大的,再加小的,看行不行。这样如果如果v%a<2v%a,那么a>2v,如果输出x,那么v<a<2v就可以确定a的上下区间,分别是v和2v。然后再去二分mid,每次输出v和mid,找到v%a<mid%a的mid的最大值。那么mid+1就是a...原创 2019-01-23 09:29:44 · 435 阅读 · 0 评论 -
ZOJ - 3820 B - Building Fire Stations
从一棵树取出两个点x1,x2,对于一个点x,dist[x]=min(dis[x1],dis[x2]),问这个dist[x]的最大值最小是多少。对于一个点,他的最远点之一是某一条树的直径的端点(因为求树的直径就是随便找一个点找到任意一个最远点,把他当树的直径的端点之一)那我们只要取出任意一条树的直径长度为a[0]放到a数组中,a[1]......a[a[0]],然后二分答案mid,那么取得点...原创 2018-11-25 14:35:20 · 200 阅读 · 0 评论 -
UVALive 7501 Business Cycle
一开始队友读错题了,没看到最多减少到0,于是以为是道水题,队友Wa了以后我才发现少看个条件,就说这道题怎么这么久才一个人做。sum为一轮数字的前缀和首先是加入p<=2*n或者sum[n]<=0的时候那么直接二分答案在前min(2*n,p)中跑为什么是2*n呢不能小于0就要考虑一些问题,3个数,1 -6 8,此时sum[n]>0我们发现前缀和sum的值是1 ...原创 2018-10-07 22:19:12 · 251 阅读 · 0 评论 -
ZOJ4029 浙江省赛
之前想到了先枚举logp(a[i])=k,然后找到对应区间,之后发现向下取整并无法直接用前缀和去维护,于是就继续二分k-2k,2k-3k这种区间,然而显然是过不了的,TLEGG,不过最后挂机也只能写写暴力了。结果发现k只有31,所以sum[k][i]来预处理a[i]/k向下取整,的前缀和,30*n的复杂度,那么枚举出k后二分找到对应区间就能直接求出这段区间的value之和了。注意,减法部分要+mo...原创 2018-05-02 16:24:31 · 501 阅读 · 0 评论 -
CodeForces - 913D
最多做多少题,而且那道题i要总数不超过a[i]才能得分。二分答案,就好判断了。先按a[i]来排序问题,大的放前面,那对于最多做mid的时候,就从前到后吧a[i]<=mid的放进B,然后吧B按照耗时排序,有限取最小的。然而我们发现复杂度最坏是nlognlogn。虽然我还是过了然而,今天学长讲题解后发现,直接对a按照耗时排序,然后二分一个答案后直接对a从前往后吧符合的进行相加然后与m判断大小,复...原创 2018-03-11 16:29:27 · 232 阅读 · 0 评论 -
CodeForces 762C
由于只能从b串中拆掉一段连续的,所以b串是由前面和后面2部分组成的(其中一部分可能是0,空串)。我们先预处理出pos1[i]及b串的前i个要从前向后匹配到a串的哪个位置,pos2[i]表示b串的后i个要从后向前匹配到哪个位置。然后二分拆掉的长度,去判断是否存在l,r=l+mid+1,使得pos1[l]据说使用two-pointer可以不二分,你在b串中枚举一个l,然后找到向右边找到一个r使得p原创 2018-01-29 16:15:06 · 475 阅读 · 0 评论 -
1989CSUOJ
很久以前做这题spfa是能A了,然而swb大佬无情卡掉spfa。昨天做这题因为这题不是吧所有点都能走到,所以要加个特盘不然会死循环,我的dij模板以前是有漏洞的。#include#include#include#define maxn 10010#define maxl 50010#define inf 2000000001using namespace std;int原创 2017-09-08 10:42:26 · 434 阅读 · 0 评论 -
CSU-ACM2017暑假集训比赛1 TD POJ3111
#include#include#include#define maxl 100010#define inf 2000000001#define eps 1e-7using namespace std;int n,k;double ans;double v[maxl],w[maxl];struct node{double num;int pos;} a[maxl];vo原创 2017-07-27 21:10:18 · 541 阅读 · 0 评论