二分
文章平均质量分 74
YB Lin
这个作者很懒,什么都没留下…
展开
-
CF535C Tavas and Karafs 二分 + 结论
传送门题意:定义第iii个数是a+(i−1)∗ba+(i-1)*ba+(i−1)∗b,先有qqq个询问,每次询问给你l,t,ml,t,ml,t,m代表你可以操作ttt次,每次可以将最多mmm个数减111,每次都需要回答从lll开始, 最远到第几个数,能在执行完这些操作之后[l,r][l,r][l,r]内的数被减成000。1≤a,b≤1e6,1≤q≤1e5,1≤l,t,m≤1e61\le a,b\le 1e6,1\le q\le 1e5,1\le l,t,m\le 1e61≤a,b≤1e6,1≤q≤1e原创 2022-03-28 16:21:08 · 156 阅读 · 0 评论 -
HDU - 6982 J - Road Discount wqs二分 + 模型转换 + 优化
传送门文章目录题意:思路:题意:给你一个nnn个点mmm条边的图,每个边有一个代价以及折扣价,你需要输出nnn行,第iii行代表你可以选i−1i-1i−1条边使其变成优惠价,问每次的最小生成树的代价是多少。n≤1e3,m≤2e5,ci,di≤1e3n\le 1e3,m\le2e5,c_i,d_i\le 1e3n≤1e3,m≤2e5,ci,di≤1e3思路:直接考虑折扣价不是很好想,所以考虑能不能把这些边单独拿出来。下面我们假定原边是白边,折扣边是黑边,那么对于每次要输出的,问题就转换成了选原创 2021-07-28 10:09:28 · 428 阅读 · 0 评论 -
Educational Codeforces Round 111 (Rated for Div. 2) E. Stringforces 二分 + 状压dp
传送门文章目录题意:思路:题意:给你一个串,只包含前kkk个字母和???,定义fif_ifi表示第iii个字母在串中出现的最长连续长度,你现在需要将???替换为前kkk个字母,使得mini=0k−1fimin_{i=0}^{k-1}f_imini=0k−1fi尽可能大。n≤2e5,k≤17n\le2e5,k\le17n≤2e5,k≤17思路:让最小值尽可能大,我们可以考虑二分一个最小长度,让后考虑怎么检查答案呢?假设二分的长度为midmidmid,可以发现问号拿出来之后一种有效方案每个连原创 2021-07-15 08:42:27 · 205 阅读 · 0 评论 -
Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing 二分 + check
传送门文章目录题意:思路:题意:思路:直接算不好算,考虑二分这个中位数midmidmid。考虑如何checkcheckcheck,这个分情况来就好了:(1)mid>a[i].r(1)mid>a[i].r(1)mid>a[i].r,这个时候这个人永远不能到midmidmid,所以给他a[i].la[i].la[i].l。(2)mid<a[i].l(2)mid<a[i].l(2)mid<a[i].l,这个时候给多少都>mid>mid>mid,原创 2021-06-29 00:01:02 · 125 阅读 · 0 评论 -
Codeforces Round #635 (Div. 2) D. Xenia and Colorful Gems 暴力 + 二分
传送门文章目录题意:思路:题意:给你三个数组a,b,ca,b,ca,b,c,让你从每个数组中选择一个数x,y,zx,y,zx,y,z,使得(x−y)2+(x−z)2+(y−z)2(x-y)^2+(x-z)^2+(y-z)^2(x−y)2+(x−z)2+(y−z)2最小,求这个最小值。思路:由于答案一定是x≤y≤zx\le y\le zx≤y≤z的形式(当然这里的x,y,zx,y,zx,y,z与题意的x,y,zx,y,zx,y,z不同),所以我们就可以跑一个3!3!3!排列,让他们分别为x,y,zx原创 2021-06-03 08:43:32 · 73 阅读 · 0 评论 -
P2839 [国家集训队]middle 二分 + 主席树 在值域上建区间
传送门文章目录题意:思路:题意:思路:我们先解决怎么判断中位数的问题,我们可以二分一个midmidmid,将<mid<mid<mid的值都变成−1-1−1,其他的数都变成111,那么当全部的和>=0>=0>=0的时候,就说明当前数可以为中位数,且可能会变得更大,让后继续二分判断就好。以上过程的复杂度是O(qnlogn)O(qnlogn)O(qnlogn)的,显然不能接受,但是可以发现我们的预处理之后的数组是可以递推出来的,不需要每次都算一遍,比如当前midmi原创 2021-04-10 12:45:21 · 147 阅读 · 0 评论 -
Educational Codeforces Round 80 (Rated for Div. 2) 二分 + 状压
传送门文章目录题意:思路:题意:给你nnn个长度为mmm的数组,选出两个来,让他们每一位取maxmaxmax构成新数组bbb,让后最大化bbb的最小值。思路:看到m=8m=8m=8,也就是每个数组长度为mmm,很容易想到状压。由于要最大化最小值,我们不妨二分这个最小值,让后将nnn个数组状压成一个二进制,>=mid>=mid>=mid的位置为111,否则为000。这个时候我们只需要找出两个数使其取或后[0,m−1][0,m-1][0,m−1]的每一位都是111即可。我们发现只需原创 2021-04-10 10:09:05 · 117 阅读 · 0 评论 -
Educational Codeforces Round 77 (Rated for Div. 2) D. A Game with Traps 贪心 +二分
传送门文章目录题意:思路:题意:给你nnn个人,每个人都有个能力值aia_iai。让后在1−m1-m1−m的路上有kkk个陷阱,每个陷阱的范围是[li,ri][l_i,r_i][li,ri],伤害是did_idi,能力值低于did_idi的人不能通过陷阱,你可以跑到rir_iri处把这个陷阱摧毁,这样就可以带人过去了。现在起点在000,让带尽可能多的人到m+1m+1m+1点。思路:很明显的二分,我们先把aaa数组排序,让后二分带多少人,让后下界就是最小值mimimi,checkchec原创 2021-03-23 15:43:59 · 602 阅读 · 0 评论 -
Codeforces Round #686 (Div. 3) F. Array Partition 二分 + 线段树
传送门文章目录题意:思路:题意:化简一下题意就是求满足max(1,x)=min(x+1,y)=max(y+1,n)max(1,x)=min(x+1,y)=max(y+1,n)max(1,x)=min(x+1,y)=max(y+1,n)的len1=x,len2=y−x,len3=n−ylen1=x,len2=y-x,len3=n-ylen1=x,len2=y−x,len3=n−y。思路:首先我们暴力做法就是n2n^2n2枚举x,yx,yx,y的位置,让后判断(y+1,n)(y+1,n)(y+1,n)原创 2021-03-21 10:15:06 · 95 阅读 · 0 评论 -
P1527 [国家集训队]矩阵乘法 整体二分 + 二维树状数组
传送门题意:思路: 算是个整体二分的板子啦,不过这个是二维的矩阵,我们只需要把一位树状数组改成二维的,让后动态维护单点加,区间查询前缀和即可。//#pragma GCC optimize(2)#include<cstdio>#include<iostream>#include<string>#include<cstring>#include<map>#include<cmath>#include<cctype原创 2021-03-02 20:36:17 · 102 阅读 · 0 评论 -
Codeforces Round #700 (Div. 2) C. Searching Local Minimum 交互二分
传送门题意: 给一个数组,让你找到a[i]<min(a[i+1],a[i−1])a[i]<min(a[i+1],a[i-1])a[i]<min(a[i+1],a[i−1])位置iii,每次询问iii可以得到a[i]a[i]a[i],最多询问100次,且a[0]=a[n+1]=+∞a[0]=a[n+1]=+∞a[0]=a[n+1]=+∞。我们考虑假设我们知道了a[i]a[i]a[i]和a[i+1]a[i+1]a[i+1],如果a[i]<a[i+1]a[i]<a[i+1]a[i原创 2021-02-21 10:55:31 · 107 阅读 · 0 评论 -
Codeforces Round #703 (Div. 2) D . Max Median 二分 +思维
传送门题意: 给定一个数组和k,求一段连续区间中位数最大值,连续区间长度>=k。如果=k的话可以直接秒了,这里是>=k,我们可以通过二分让后利用>=k这个条件来检查答案。二分中位数,假设当前二分的为midmidmid,那么a[i]>=mida[i]>=mida[i]>=mid的数可以变成111,a[i]<mida[i]<mida[i]<mid的数变成−1-1−1,现在问题就变成了寻找长度>=k且值为正的序列。这个问题可以用前缀和解决,我们枚举原创 2021-02-19 11:12:16 · 255 阅读 · 1 评论 -
Codeforces Round #703 (Div. 2) Guessing the Greatest C1 C2 二分
link题意:交互题,每次可以询问一个区间的次大值,保证所有值都不相同,求最大值位置。easy是询问最多40次,hard最多20次。交互题大部分都是二分,可以向二分考虑。easy比较好想,假设当前区间为[l,r][l,r][l,r],中点midmidmid,先查询[l,r][l,r][l,r],得到次大值的位置pos1pos_1pos1,假设pos1<=midpos_1<=midpos1<=mid,那么就查询[l,mid][l,mid][l,mid]的次大值得到pos2pos_2原创 2021-02-19 10:00:52 · 156 阅读 · 3 评论