![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分
文章平均质量分 53
JK Chen
ACM退役选手,战绩4金6银
展开
-
AT5693 [AGC041B] Voting Judges(尺取 前缀和 二分)
题意: 给出一个数组,有m次操作,每次选中V个数+1,然后选中最大的P个数(相同的数随意排序),问多少个位置的数可能被选中 解析: 排序后,考虑第iii个数是否可能被选中: 首先a[i]这个数每次都会被选中,所以要求操作后大于a[i]+ma[i]+ma[i]+m的数少于PPP个。 也就是说对于大的数,尽可能分配少一点。 小于等于a[i]a[i]a[i]的可以每次全部选。 大于a[i]+ma[i]+ma[i]+m的数不管分不分都大于a[i]+ma[i]+ma[i]+m,所以也是每次选。 所以考虑的区间要求a原创 2020-10-07 16:42:46 · 204 阅读 · 0 评论 -
Omkar and Landslide(想法 二分)
http://codeforces.com/problemset/problem/1392/F 题意: 解析: 从后往前做,当前位置-1,前面位置+1,所以若前面两个数相同现在也会不相同(AAB变为ABB),所以可以得出答案序列没有超过1对的相同的数。 所以做法就是定下相同的位置,其它位置都是差为1,这个就可以用二分得出。 代码: /* * Author : Jk_Chen * Date : 2020-09-11-08.11.23 */ #include<bits/stdc++.h&g原创 2020-09-11 08:33:00 · 206 阅读 · 0 评论 -
4.2美团笔试题4(哈希 二分)
解析: 先哈希处理。(判断子串是否相同) 然后枚举两个位置i,ji,ji,j,代表ABA中两个A的起点是i和j。 首先[i,i+k−1][i,i+k-1][i,i+k−1]和[j,j+k−1][j,j+k-1][j,j+k−1]要相同,然后二分找到最大的L使得[i,i+L−1][i,i+L-1][i,i+L−1]和[j,j+L−1][j,j+L-1][j,j+L−1]。 此时以iii开始,[j+...原创 2020-04-02 21:31:26 · 3462 阅读 · 3 评论 -
E. Delete a Segment(想法 单调栈 二分)
http://codeforces.com/contest/1285/problem/E 题意: 给出很多一维线段,两段线段可以合并当且仅当有交集。现在给出n段线段[l,r],求删掉一段后再合并,最多可以剩下几段。 解析: 先按照起点排序。 假设删除段xxx,想办法得出[1,x−1][1,x-1][1,x−1]的段数,已经可以延到的右界。 维护右边的段数和每一段的起点。那么答案就是numl+num...原创 2020-01-15 14:40:25 · 468 阅读 · 0 评论 -
WQS二分(F. New Year and Handle Change)
WQS二分 问题中最多能选择K次,而每次多一次选择得到的价值都小于等于之前的,也就是说F(x+1)x+1≤F(x)x\frac{F(x+1)}{x+1}\leq\frac{F(x)}{x}x+1F(x+1)≤xF(x),画出的图像为上凸包: 虽然操作越多越优秀,但是每次增加的量在减少。想想,某个时候会变得很小。 如果我们对这个增加的量减去一个数C,那么某个时候开始就会变小了。 我们想要的是...原创 2020-01-11 20:25:08 · 494 阅读 · 0 评论 -
It Can Be Arranged(二分 网络流)
original link - https://cn.vjudge.net/problem/Gym-100443B 题意: 每个段有SiS_iSi个人,一个房间可以放mmm个人,已知开始时间和结束时间。一个房间被段iii用完后,段jjj要使用必须间隔大于CijC_{ij}Cij,问最少的房间数量。 解析: 比较好想的办法,先二分答案,再这样构图,由于最小费用,所以会优先跑a−ba-ba−b的边...原创 2019-10-06 20:02:04 · 224 阅读 · 0 评论 -
K-th Number(二分 尺取)
original link - http://acm.hdu.edu.cn/showproblem.php?pid=6231 题意: 一个数组aaa,将其所有区间的第kkk大放入另外一个数组,求那个数组的第mmm大。 解析: 我们可以二分答案,设第二个数组的第mmm大为xxx,相当于是区间第kkk大,大于等于xxx的区间有至少mmm个。 这个东西可以O(n)O(n)O(n)check:区间第kkk...原创 2019-09-21 19:52:08 · 182 阅读 · 0 评论 -
2019牛客暑期多校训练营(第六场)Move(假二分)
原题: https://ac.nowcoder.com/acm/contest/886/D 题意: 有nnn个物品,给出每个的大小,现在有kkk个盒子。撞物品的策略固定,即一个一个盒子开始装,每次会装最大的可以塞进去的物品,直到不行为止。 求装完所有物品的最小盒子容量。 解析: 题解中给出的卡二分的数据 15 5 39 39 39 39 39 60 60 60 60 60 100 100 100...原创 2019-08-03 17:34:10 · 145 阅读 · 0 评论 -
2200+专项:E. Rest In The Shades(几何 二分)
第一次这么快单刷出2400的题,小激动 原题: http://codeforces.com/problemset/problem/1016/E 题意: 有一个光源以速度1从(a,sy)移动到(b,sy)(第四象限),在x轴上有一些口子[l,r],每次查询给出一个第一象限的点,问在光源的移动过程中,这个点每照到多久。 解析: 上述图片中区域x被这个口子完整扫过,那么设其中的一个点为(x,y)...原创 2019-05-20 12:24:27 · 528 阅读 · 1 评论 -
Overflow(二分 物理)
原题: http://acm.hdu.edu.cn/showproblem.php?pid=6487 题意: 有一个底面积S,高为H的桶,里面有V升水。现在有n个立方体,给出变长和密度,每个立方体不叠放,问水的高度。 解析: 假设二分到的水位为h,对于这个水位,求出当前的水的体积。若体积大于V则说明枚举过大。 证明: 对于一个大于答案水位的h,对于那些完全沉下去的和已经浮起来不用考虑。考虑加了水后...原创 2019-05-13 21:42:34 · 261 阅读 · 0 评论 -
2300专项:D. Stressful Training(二分 充电)
原题: http://codeforces.com/problemset/problem/1132/D 题意: k-1分钟,n个点,初值为ai,每分钟消耗bi。你现在可以选择一个p大小的充电器,每分钟选择一个点充。问最小的p使得没有一个点在任意一分钟小于0。 解析: 二分答案值,对于答案p进行分析。 对于每个点,只有当它变成负数的时候再+p。而如果前面有几分钟没有加过,我可以让那分钟充这个点。形象...原创 2019-04-19 16:00:34 · 199 阅读 · 0 评论 -
2200专项:D. Nature Reserve(double 二分)
原题: http://codeforces.com/problemset/problem/1059/D 题意: 有n个点,给出坐标。问是否有一个与x轴相切的圆包含所有这些点。求出半径。 解析: 有一个点y>0,一个点y<0或者两个点y=0就不行。 直接二分答案,对于一个点,求(x[i]−x)2+(y[i]−r)2=r2(x[i]-x)^2+(y[i]-r)^2=r^2(x[i]−x)2...原创 2019-04-05 14:54:26 · 258 阅读 · 0 评论 -
Video Reviews (强大的二分)
原题:Video Reviews 题意: 有n个人(带顺序),对i,如果前面有ai个人加入,那么i会加入 你可以强迫任何一个人加入,问想要加入人数达到m的最小强迫次数为多少 解析: 假设你一定要强迫一个人,那么最优方案为强迫第一个不加入的人,因为从加入的人开始后面的人加入的可能性变大,越前面加入,开始的越早 但是在不知道强迫多少人的情况下,你处理起来会很复杂,因为你在遇到一个不加入的人...原创 2018-07-22 20:30:35 · 454 阅读 · 0 评论 -
小Y写文章 (二分+二分图最大匹配)
原题:埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 J 题意: 给定n个数的数组,插入m个数,可以在最前面也可以在最后面,但是一个位置只能插入一个数,使ans最小 ans=max(abs(a[i+1]-a[i])) 解析: 二分ans,对面每个ans,判断是否可以将m个数都插入 问题的怎么判断 既然假设已经知道了ans,那么哪些数可以插在哪些位置就知道了,m个数对应...原创 2018-05-02 12:39:05 · 334 阅读 · 0 评论 -
J - The Meeting Place Cannot Be Changed(走到一点花费时间最少)
原题:codeforces 780 题意: 给n个人的在数轴上的位置,已经他们移动的速度,求他们汇聚到一点的最小时间,eps为1e-6。 解析: 二分时间,对于每个时间,求出所有人,向左走这个时间后所在位置的最右值,向右走的最左值,看看是不是相交,不如不相交就说明不能在这个时间内汇聚到一点。 注意精度为1e-6,我开始的时候设成1e-12,在 3 \n 1 10000000...原创 2018-03-07 22:16:34 · 358 阅读 · 0 评论 -
二分删字符串
原题:String Game 题意: 给字符串a,b,给出删a中字符串的顺序,求最多删多少次后,b还是a是子序列 解析: 一个一个删就T了,所以二分一下删的个数 代码: string a,b; int s[200009]; int sub[200009]; int judge(int t){ mmm(sub,0);for1(i,1,t)sub[s[i]]=1; i...原创 2018-03-07 21:31:25 · 406 阅读 · 0 评论 -
院赛开始了 求最大子区间的最小值
原题:院赛开始了 题意:n个数,分成m片区间,Max为m片区间中的最大区间(区间元素和最大),求Max的最小值 思路:二分枚举一个最大值,每次判断从前往后是否可以分成m份(如果分成小于m份也可以把一个区间拆成多个区间,所以&lt;=m就可以,&gt;m就不行) 代码: #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;c原创 2018-02-24 12:33:31 · 360 阅读 · 0 评论