二分
文章平均质量分 74
Frozen_Guardian
已退役菜鸡Acmer
展开
-
CodeForces - 1562D2 Two Hundred Twenty One (hard version)(二分)
题目链接:点击查看题目大意:定义一个前缀和公式 a1−a2+a3−a4+…=∑i=1n(−1)i−1⋅aia_1 - a_2 + a_3 - a_4 + \ldots=\sum\limits_{i=1}^n (-1)^{i-1} \cdot a_ia1−a2+a3−a4+…=i=1∑n(−1)i−1⋅ai,再给出一个长度为 nnn 的序列,只包含 {−1,1}\{-1,1\}{−1,1},然后 qqq 次询问,每次需要回答最少删除多少个数字可以使得区间 [l,r][l,r][l,r] 的前缀和原创 2021-08-27 14:47:32 · 315 阅读 · 0 评论 -
Kattis - icpccamp ICPC Camp(二分+贪心)
题目链接:点击查看题目大意:给出两种种类的数字分别 m1m_1m1 和 m2m_2m2 个,现在要求匹配 nnn 个不同种类的数字,每个数字只能使用一次,且两数之和不能超过 sss,输出任意两对数字之差最大值的最小值题目分析:首先二分答案将最值问题转换为检验问题。假如差值确定后,每个数字就会出现一个可匹配的区间,设数字为 xxx,差值为 ddd,则其可以匹配另一种类的数字区间为 [x−d,min(x+d,s−x)][x-d,\min(x+d,s-x)][x−d,min(x+d,s−x)]于是原创 2021-08-22 15:26:09 · 443 阅读 · 0 评论 -
CodeForces - 1560F2 Nearest Beautiful Number (hard version)(二分+数位dp)
题目链接:点击查看题目大意:给出一个十进制数字 nnn 和一个约束 kkk,问大于等于 nnn 且满足不同的数位个数小于等于 kkk 的最小的数字是多少题目分析:自己写的贪心太丑了,就不放上来丢人了偷的杨大佬的trick,对于某个数字 xxx,如果可以快速求出区间 [1,x][1,x][1,x] 中有多少个数字满足不同的数位个数小于等于 kkk 的话,显然这个答案是具有单调性的考虑二分答案,然后用数位dp快速求解这个过程,dp[pos][state][k]dp[pos][state][k]dp[po原创 2021-08-19 22:59:19 · 247 阅读 · 4 评论 -
2019ICPC(沈阳) - Flowers(二分)
题目链接:点击查看题目大意:给出 nnn 种颜色不同的鲜花,每种花有 aia_iai 个,现在规定 mmm 个不同的鲜花可以扎成一束,问最多可以扎多少束鲜花题目分析:考虑问题的简化版:有三种颜色不同的袜子,分别有 a,b,ca,b,ca,b,c 个,任意两个颜色不同的袜子可以互相匹配,问最多可以匹配多少个,解法也很简单,记 sum=a+b+c,mmax=max(a,b,c)sum=a+b+c,mmax=max(a,b,c)sum=a+b+c,mmax=max(a,b,c),则:若 mmax≤sum原创 2021-08-06 12:52:49 · 248 阅读 · 0 评论 -
HDU多校4 - 6988 Display Substring(后缀自动机+二分)
题目链接:点击查看题目大意:给出一个长度为 nnn 的字符串 sss,每个字母都有一个权值,现在要求所有本质不同子串中权值和第 kkk 大的权值题目分析:如果没有本质不同,那有一个很简单的二分套二分的方法,就是直接二分答案,每次枚举字符串中的每个后缀的位置作为左端点,然后二分右端点的位置,判断一下小于等于 midmidmid 的子串个数和 kkk 的关系,正确性是显然的但本题要求本质不同的子串,不难联想到后缀数据结构,我用的是后缀自动机。在后缀自动机中,每个节点代表的实质上就是一个本质不同的子串,而其原创 2021-07-30 10:38:49 · 298 阅读 · 0 评论 -
CodeForces - 1550E Stringforces(二分+状压dp)
题目链接:点击查看题目大意:给出一个长度为 nnn 的字符串,只包含前 kkk 个小写字母以及通配符 ???,现在可以将通配符替换成任意的前 kkk 个字母中的一个。设 f[i]f[i]f[i] 为第 iii 个字母在字符串中,最长的连续子段的长度,现在要求所有 f[i]f[i]f[i] 中最小值的最大值题目分析:读完题一下子根据复杂度把正解分析出来了,可是怎么也没办法往 dpdpdp 上去靠。因为 k≤17k\le 17k≤17,又因为 217≈2e52^{17}≈2e5217≈2e5,所以不难想到二原创 2021-07-15 12:01:23 · 477 阅读 · 0 评论 -
CodeForces - 1480C Searching Local Minimum(交互+二分)
题目链接:点击查看题目大意:给出一个长度为 nnn 的排列,需要找出一个“局部最小值”,所谓“局部最小值”就是对于某个 iii 来说,满足 ai<ai−1a_i<a_{i-1}ai<ai−1 且 ai<ai+1a_i<a_{i+1}ai<ai+1,更具体的, a0=an+1=infa_0=a_{n+1}=infa0=an+1=inf可以询问不超过 100100100 次,每次可以询问一个位置的值题目分析:挺有意思的一道二分的变形,我们可以从 a0=an+原创 2021-07-14 00:08:40 · 206 阅读 · 0 评论 -
CodeForces - 1547F Array Stabilization (GCD version)(ST表+二分)
题目链接:点击查看题目大意:给出一个长度为 nnn 的数组 aaa,下标从 000 开始,每次操作分为两个步骤:构建出数组 bbb,有 bi=gcd(ai,a(i+1)mod n)b_i=gcd(a_i,a_{(i+1)\mod n})bi=gcd(ai,a(i+1)modn)用数组 bbb 覆盖数组 aaa问至少需要操作多少次,才能使得数组 aaa 的每个元素都相等题目分析:方便起见,下文中的下标 (i+1)mod n(i+1)\mod n(i+1)modn 统一用 i+1i+1原创 2021-07-12 18:46:27 · 324 阅读 · 0 评论 -
CodeForces - 1538G Gift Set(二分)
题目链接:点击查看题目大意:给出 a,b,x,ya,b,x,ya,b,x,y,分别表示有 aaa 个蓝色糖果和 bbb 和红色糖果,现在有两种打包方式:xxx 个蓝色糖果和 yyy 个红色糖果yyy 个蓝色糖果和 xxx 个红色糖果问最多能打包多少袋糖果题目分析:赛场上写了个三分死活过不去,死后把三分的范围改成 100010001000 就过了,然后第二天睡了一觉起来又被 hackhackhack 了,神奇假设需要 t1t_1t1 种第一种打包方式,需要 t2t_2t2 种第二种打包方式原创 2021-06-14 17:34:42 · 427 阅读 · 1 评论 -
CodeForces - 1486D Max Median(二分+最长连续子段和)
题目链接:点击查看题目大意:给出一个长度为 nnn 的数列,现在从长度至少为 kkk 的连续子段中,找到最大的中位数题目分析:做过平均数的模型:POJ - 2018 Best Cow Fences将平均数换成中位数该如何去考虑呢,现在问题转换为了,枚举 xxx 作为中位数,该如何 checkcheckcheck 序列是否合法考虑若一个数想要成为中位数,则至少有一半及以上的数比他小才行,那么我们如果将比 xxx 小的数视为 −1-1−1 ,大于等于 xxx 的数视为 111 会怎么样呢?不难发现,如果原创 2021-06-09 16:46:15 · 316 阅读 · 0 评论 -
CodeForces - 1486C2 Guessing the Greatest (hard version)(二分+交互)
题目链接:点击查看题目分析:给出一个长度为 nnn 的序列,现在可以进行最多 202020 次查询,每次查询可以询问区间 [l,r][l,r][l,r] 中次大值的位置,现在要求在查询后输出最大值的位置题目分析:C1C1C1 的 404040 次查询是比较简单的二分,就不多说了,关于本题,个人感觉更像是一道思维偏重的构造题,直接说做法吧可以先利用一次查询,询问 [1,n][1,n][1,n] 的次大值位置,记为 ppp再用一次查询,询问最大值是在 [1,p−1][1,p-1][1,p−1] 还是 [原创 2021-06-09 16:25:31 · 176 阅读 · 0 评论 -
牛客 - Alice and Bob(尺取+二分)
题目链接:点击查看题目大意:给出一个长度为 nnn 的数列,和一个数字 kkk。现在给出 mmm 次询问,每次查询需要回答区间 [l,r][l,r][l,r] 内有多少个子区间,满足区间内不同的数字个数大于等于 kkk题目分析:一开始看到强制在线和区间问题以为是主席树,后来发现 kkk 自始至终都是不变的。这样每个点作为左端点时,假设某个点可以作为右端点 rrr 与其对应,那么显然当 i∈[r+1,n]i\in[r+1,n]i∈[r+1,n] 的 iii 作为右端点时,区间 [l,i][l,i][l,i原创 2021-06-01 21:02:29 · 275 阅读 · 0 评论 -
兰州大学第一届『飞马杯』程序设计竞赛 - ★★体育课排队★★(二分+最大流)
题目链接:点击查看题目大意:给出 nnn 个人,再给出 nnn 个指定位置,每个人每秒钟可以向上下左右四个方向移动一个单位,问最少需要多长时间,才能使所有人都到达指定位置题目分析:数据比较小,可以直接二分时间然后跑最大流 checkcheckcheck,输出路径也是中规中矩的,注意行末空格就好啦代码:// Problem: ★★体育课排队★★// Contest: NowCoder// URL: https://ac.nowcoder.com/acm/contest/16520/B// Mem原创 2021-05-29 20:11:08 · 253 阅读 · 0 评论 -
CodeForces - 484E Sign on Fence(主席树区间合并+二分)
题目链接:点击查看题目大意:给出一个长度为 nnn 的数列,需要回答 mmm 次询问,每次询问的格式如下:l r kl\ r\ kl r k,需要回答区间 [l,r][l,r][l,r] 内,所有长度为 kkk 的子区间中,最小值的最大值是多少,即在 [l,r][l,r][l,r] 中选择一段长度为 kkk 的子区间,使得其最小值最大题目分析:求最小值的最大值不难想到二分,所以现在问题转换为了对于询问l r kl\ r\ kl r&n原创 2020-12-21 17:46:21 · 196 阅读 · 0 评论 -
2020ICPC(上海) - Walker(分类讨论+二分)
题目链接:点击查看题目大意:在长度为 n 的数轴上给出两个人的初始位置和速度,问使得每个位置至少被一个人走过的时间是多少题目分析:分类讨论题目,分四种情况讨论即可,初始时设 p1 < p2:p1 走完全程 p2 走完全程 p1 向右走,p2 向左走 p1 向左走,p2 向右走,最后共同走完 p1 ~ p2 这段区间前三种都可以推出公式快速得出,对于第四种需要二分确定答案,可以二分断点位置 x,这样问题就变成了:p1 走完 [ 0 , x ] 这段区间,p2 走完 [ x , n ]原创 2020-12-16 11:35:43 · 887 阅读 · 0 评论 -
CodeForces - 551C GukiZ hates Boxes(二分+贪心)
题目链接:点击查看题目大意:给出一个长度为 n 的数列 a,表示每个位置的障碍物数量,现在有 m 个学生可以来搬走障碍物,每一秒钟可以做出的行为如下:从位置 i 移动到位置 i + 1 从当前位置搬走一个障碍物问搬走所有的障碍物最少需要多长时间题目分析:不难看出时间越多,越有可能完成任务,所以可以二分时间然后贪心去check最初的思想是让学生从前向后去搬,发现不好处理,看了题解后发现可以让学生从后向前去搬具体思想如下,因为搬走所有的箱子所需要的时间是固定的,唯一不同的就是花费在路上的原创 2020-12-14 10:44:58 · 215 阅读 · 0 评论 -
CodeForces - 967D Resource Distribution(贪心+二分+构造)
题目链接:点击查看题目大意:给出 n 个机器,每个机器可以处理 a[ i ] 的工作,现在有两个工作需要处理,工作量分别为 x1 和 x2,可以将一个工作分配给 k 个机器同时完成,需要满足:k 个机器都需要满足 每个机器只能处理一个工作题目要求输出一种合适的构造方案,如果无解输出 No题目分析:首先预处理出 a[ i ] 和 b[ i ] ,分别代表将 x1 和 x2 分配给 i 个机器所需要的最低下限然后设题目中的 a[ i ] 为 c[ i ] (避免与上面的两个变量重名),代表原创 2020-12-13 21:55:17 · 252 阅读 · 0 评论 -
CodeForces - 487B Strip(线段树+dp+二分)
题目链接:点击查看题目大意:给出一个长度为 n 的序列,现在要求分成尽可能少的子段,且每个子段需要满足:最大值与最小值的差值小于等于 s 子段长度大于等于 l题目分析:dp[ i ] 代表的是前 i 个数字分成最少的子段个数,转移方程如下:dp[ i ] = dp[ j - 1 ] + 1:第 i 项单独一段 dp[ i ] = dp[ j - 2 ] + 1:第 i 项与 i - 1 项组成一段 ... dp[ i ] = dp[ 0 ] + 1:第 1 ~ i 项组成一段显然是取原创 2020-11-25 21:50:01 · 226 阅读 · 0 评论 -
CodeForces - 1454F Array Partition(线段树+二分)
题目链接:点击查看题目大意:给出一个长度为 n 的序列,现在要求求出任意一组 x , y , z,满足下列条件:x + y + z = n max( 1 , x ) = min( x + 1 , x + y ) = max( x + y + 1 , n )题目分析:昨晚上用单调栈写的写崩了,到现在还是不知道哪里写崩了。。太拉胯了因为这个题目给出的序列是需要静态查询最值,用 st 表或线段树都可以快速查询,因为感觉线段树写起来简单就直接上线段树了最简单的一种思路是直接 n^2 去枚举两个断原创 2020-11-25 17:53:30 · 2668 阅读 · 4 评论 -
CodeForces - 507E Breaking Good(二分+贪心)
题目链接:点击查看题目大意:给出 n 个竹子,初始时高度为 h[ i ],接下来每一天每个竹子都会长高 a[ i ] 个单位的高度,每一天可以砍 k 次竹子(可以是同一个),每次可以砍掉 p 个单位的高度,现在问 m 天后,n 个竹子高度的最大高度的最小值是多少题目分析:看到询问的答案是 “最大值的最小值” 不难想到二分,于是问题转换为了,给出高度 mid,如何判断 mid 是否合法正着去思考的话,很难想出一种合法的贪心策略,不难看出的一个小结论是:时间靠后的 “砍” 操作一定比时间靠前的更有价原创 2020-11-16 16:09:44 · 198 阅读 · 0 评论 -
2020ICPC(小米邀请赛2) - 2020(二分+贪心)
题目链接:点击查看题目大意:给出一个长度为 n 的字符串,问最多可以匹配多少个互不相交的 “2020”的子序列题目分析:考虑 “2020” 是由两个 “20” 组成的,假设对于一个 “20” 来说,用 ( l , r ) 来表示其在字符串中覆盖的起止位置,那么用来组成 “2020” 的两个 “20”:( l1 , r1 ) , ( l2 , r2 ),必须满足 r1 < l2 或 r2 < l1 才行,也就是互不相交假设现在有 k 个 “2020”,也就是需要选择 2 * k 个 .原创 2020-11-03 17:55:59 · 399 阅读 · 0 评论 -
中石油训练赛 - High Load Database(二分+记忆化)
题目链接:点击查看题目大意:给出一个长度为 n 的数列,再给出 m 次询问,每次询问给出一个阈值 x ,问最少将数列分割成多少段,可以使得每一段的总和都不超过 x,无解的话输出Impossible题目分析:首先单独讨论一下无解的情况,因为数列总是可以被分成 n 段,也就是每个元素独立一段,这样的话如果阈值小于最大值的话显然是无解的如果不考虑时间复杂度的话,不难想到一个 n * m 的做法,就是对于每个询问,都扫一遍数列,然后贪心求解考虑优化,首先 m 个询问肯定是无法优化的,对于扫一遍数列.原创 2020-10-10 20:48:45 · 271 阅读 · 2 评论 -
中石油训练赛 - Get Strong(dfs双向搜索+二分)
题目大意:给出 n 个武器,每个武器可以升级最多 k[ i ] 次,每次升级需要花费 c[ i ][ j ] 个单位的金币,性能可以提升 w[ i ][ j ] 个单位,现在给出 m 个金币,问如何分配可以使得总性能最大题目分析:n 只有 20,k 只有 4,直接搜索的话时间复杂度为 5^20,显然是不可行的,之前做过一个模型一样的题目:AcWing - 171,所以不难想到可以写双向dfs+二分,直接实现就好了代码://#pragma GCC optimize(2)//#pragm...原创 2020-10-08 19:19:33 · 261 阅读 · 0 评论 -
牛客 - Sixth Sense(贪心+二分)
题目链接:点击查看题目大意:给出两个长度为 n 的数列记为 a 和 b,现在 a 的数列固定不动,问如何对数列 b 进行排列,可以使得:b[ i ] > a[ i ] (严格大于)的位置尽可能多 在满足上述要求的前提下,b 的排列字典序最大题目分析:如果不考虑第二个约束的话,那就是一个非常简单的贪心问题了,贪心策略如下:因为最终需要的是 a 中的每个元素和 b 中每个元素一一对应的一个结果,所以只需要考虑其相对位置,将两个数组分别排序,然后用双指针一个去枚举 a 中的元素,另一个贪心从 b原创 2020-10-06 21:15:14 · 455 阅读 · 0 评论 -
ZOJ - 2676 Network Wars(01分数规划+最小割)
题目链接:点击查看题目大意:给出一个 n 个点和 m 条边组成的无向带权图,现在需要求一个将点 1 和点 n 分开的割集 C ,使得最小题目分析:分数式为总权值比上边的数量,换句话说就是一条边只有选或不选两种状态,所以可以用 01 规划转换题意:,这样就转换成了 01 分数规划的题目,构造新函数 g 为:,令边权,则原式变为,即转换为了求原图的最小割,这样外层套一个二分,二分内部的 check 用最小割来实现即可关于最后的路径输出,只需要 dfs 一下将整张图分为两个部分即可还需要注..原创 2020-10-04 11:26:20 · 228 阅读 · 0 评论 -
中石油训练赛 - Fermat‘s Optimization Problem(Java高精度运算+二分)
题目大意:给出误差函数,现在给出 z 和 n,要求求出 x 和 y ,使得函数 F 的取值最小题目分析:首先数据范围是幂次级别的,1e5 的 10 次方,也就是 1e50 次方,需要用到大数,我用的是 java 的大数类因为 x 和 y 的取值是 x < y < z,考虑枚举 x 或 y ,然后二分去逼近另一个,这里我枚举的是 y ,将绝对值去掉后,得到,当 y 和 z 确定后,显然这个函数具有单调性,将整个式子向 0 逼近即可,即求出的最大的可行 x1,然后尝试去更新答案,...原创 2020-10-03 21:26:59 · 264 阅读 · 0 评论 -
中石油训练赛 - Historical Maths(二分)
题目大意:给出三个十进制下的数字 A ,B ,C ,问是否存在一个 k ,满足在 k 进制下有 A * B = C题目分析:需要观察出进制与 A * B 和 C 的大小之间具有单调性,如果进制较小的话,那么进位自然就会变多,从而使得位数边长,整体数字就会变大,反之亦然,所以据此,可以直接二分答案,用一个 check 进行检查,需要注意的是答案会爆 long long,所以整体用 __int128 进行计算即可,二分的下限设置为所有数字的最大值 + 1,上限设置为 1e20代码://#...原创 2020-09-29 23:47:58 · 2577 阅读 · 0 评论 -
HDU - 4253 Two Famous Companies(二分+最小生成树)
题目连接:点击查看题目大意:给出一张 n 个点和 m 条边的连通图,每条边都有一个权值和一个颜色,颜色用黑色和白色来表示,题目要求恰好使用 k 条白边的最小生成树题目分析:感觉思路很独特的一道题目,然鹅就是数据出锅了,感觉挺可惜的,正确的题意应该是,要求使用不超过 k 条白边的最小生成树首先如果对原图直接跑最小生成树的话,设 cntk 表示选择的白边的个数,那么 cntk 大概率是不等于 k 的, 那么我们可以考虑对所有的白边整体放缩,如果将所有的白边减去一个值 x ,那么在进行克鲁斯卡尔排序的原创 2020-09-18 16:46:01 · 237 阅读 · 0 评论 -
SDUT - 2609 A-Number and B-Number(二分+数位dp)
题目链接:点击查看题目大意:规定 A 数组为所有十进制下含有 7 或者可以被 7 整除的数字,例如 A 数组中的前 10 个数为:{a[1]=7,a[2]=14,a[3]=17,a[4]=21,a[5]=27,a[6]=28,a[7]=35,a[8]=37,a[9]=42,a[10]=47},同时规定 B 数组为 A 数组的一个子集,其中不含有以 A 中元素作为下标的 A 数组,例如 B 数组中的前 10 个数为:{b[1]=7,b[2]=14,b[3]=17,b[4]=21,b[5]=27,b[6..原创 2020-09-08 20:51:22 · 212 阅读 · 0 评论 -
HDU多校1 - 6756 Finding a MEX(分块+二分+树状数组)
题目链接:点击查看题目大意:给出一个 n 个点和 m 条边的无向图,每个点都有一个权值,现在需要执行q 次操作,每次操作分为两种类型:1 pos val :将第 pos 个点的权值修改为 val 2 pos :询问第 pos 个点相邻的所有点的权值组成的集合的 mex题目分析:只能说数据水了,如果数据拉满 std 的复杂度应该是会 TLE 的很显然的几个结论是:设点 u 的度数为 du[ u ] ,则 mex( u ) 的答案一定小于等于 du[ u ] 度数大于等于 sqrt( n.原创 2020-07-23 02:02:13 · 454 阅读 · 0 评论 -
HDU - 6749 Mosquito(二分+状态压缩+最大流)
题目链接:点击查看题目大意:给出一个 n * m 的房间,再给出 k 个蚊子窝(保证蚊子窝在边界上),每个蚊子窝内有数只蚊子,单位时间内蚊子可以移动一个单位的曼哈顿距离,蚊子们都是非常聪明的,问最少需要多少时间,蚊子可以将整个房间都占领,即每个格子上至少存在一个蚊子题目分析:看了题解之后发现非常巧妙的一道网络流代码:#include<iostream>#include<cstdio>#include<string>#include<.原创 2020-07-20 02:42:42 · 332 阅读 · 0 评论 -
CodeForces - 1373F Network Coverage(二分)
题目链接:点击查看题目大意:给出一个首尾相接的环,每个点的编号分别为 1 ~ n ,其中每个点的需求量记为 a[ i ] ,供应量记为 b[ i ] ,每个点可以用 b[ i ] 向 a[ i ] 和 a[ i + 1 ] 提供需求,现在问是否存在着一种分配方案,使得每个点的需求 a[ i ] 都能得到满足题目分析:题解的 O( n ) 解法表示没看懂,还是说一下从网上看到的二分解法吧假设任意一个点 b[ i ] 向 a[ i ] 或者 a[ i + 1 ] 的供应量确定了的话,那么剩下的 n原创 2020-06-27 23:17:16 · 467 阅读 · 0 评论 -
CodeForces - 1370F2 The Hidden Pair (Hard Version)(交互题+二分)
题目链接:点击查看题目大意:给出一棵无向无根树,事先确定好了两个点 s 和 t ,现在需要通过询问找到这两个点每次询问可以给出一个点集,系统会返回点集中距离点 s 和点 t 距离之和最小的那个点以及其距离,如果有多个符合条件的点,会返回任意一个,比如询问了点集 A = { s1 , s2 , ... , sk } ,则系统会返回一个点 v ∈ A 并且 dist( s , v ) + dist( t , v ) 最小简单版本的是可以询问 14 次,困难版本的是只能询问 11次题目分析:14.原创 2020-06-22 21:23:48 · 366 阅读 · 0 评论 -
CodeForces - 1370D Odd-Even Subsequence(二分+思维)
题目链接:点击查看题目大意:给出一个数组a ,现在要求选出一个长度恰好为 k 的子序列 s ,使得的值最小题目分析:当知道了 k 的大小之后,就可以计算出子序列奇数位置和偶数位置各有多少个数了,我们记为 k1 和 k2 ,因为我们要让尽量小,换句话说就是要让里面的两个 max 的其中一个尽量小就可以了,所以奇数列和偶数列实际上是没有任何交集的,这样一来我们可以分开考虑,我们的目标是让最大值最小,这显然是一个二分可以解决的问题,只不过在 check 函数中需要注意几个细节:在遍历数组 a 时,不.原创 2020-06-22 20:35:31 · 432 阅读 · 0 评论 -
CodeForces - 1360H Binary Median(二分)
题目链接:点击查看题目大意:给出一个 n 和 m ,初始时集合中含有 0 ~ 2^m - 1 共 2^m 个数,随后从中删去 n 个数,现在需要此时集合中的中位数题目分析:一开始被字典序迷惑了,仔细想了一下发现,其实二进制下的字典序,和普通的排序没有区别,且 m 最大才为 60 ,所以可以将字符串转换为整数从而进行二分,因为多了删除这个条件,我们需要设计一下 check 函数然后寻找一下单调性设中位数为 k ,换句话说我们需要找到集合中第 k 大的那个数,可以二分 mid ,每次遍历一遍这 n原创 2020-05-25 15:47:36 · 332 阅读 · 0 评论 -
CodeForces - 1354D Multiset(线段树/二分)
题目链接:点击查看题目大意:规定在一个 multiset 中初始时有 n 个元素,随后有 m 次操作,每次操作给出一个 num:num > 0 时:向 multiset 中添加 num num < 0 时:删除 multiset 中第 (-num) 大的数最后要求输出 multiset 中的任意一个元素,如果最后集合为空,则输出 0题目分析:两种做法,一种简单无脑,另一种很巧妙先说简单无脑的,就是直接模拟,一开始想用 multiset 直接模拟,但是想了一下发现 multis原创 2020-05-20 02:08:40 · 453 阅读 · 0 评论 -
牛客 - 动物森友会(二分+最大流)
题目链接:点击查看题目大意:给出 n 个任务,每个任务只能在每周固定的星期完成,需要完成 c 次,现在每天可以完成 m 次,问最少需要几天才能将所有任务完成题目分析:上当了。。读完题后感觉是网络流,还有点熟悉的感觉,去翻了翻博客找到了之前爱丽丝拍电影的那个题目,然后就被误导了,爱丽丝拍电影的那个题目是因为每个电影还有一个限制条件,所以需要将日期拆点,而这个题目正好没有那个限制条件,所以可以...原创 2020-04-19 01:43:22 · 293 阅读 · 0 评论 -
CodeForces - 1337D Xenia and Colorful Gems(二分)
题目链接:点击查看题目大意:给出三个序列分别记为 a,b,c,现在要求分别从三个序列中找出 x , y , z ,使得原创 2020-04-16 16:25:17 · 359 阅读 · 0 评论 -
牛客 - 完全图(二分)
题目链接:点击查看题目大意:给出一个完全图,现在要求删掉不超过 m 条边,使得连通块的个数尽量多,输出最多连通块的个数题目分析:比赛的时候正着想的,也就是直接求需要删掉多少条辨,找出来的规律也不知道对不对,反正是因为爆longlong了止步不前,一开始注意到了二分会爆longlong,于是换成倍增,比赛结束后意识到倍增也是会爆longlong的其实这个题反着想是比较容易的,题解说的很清...原创 2020-03-22 12:44:23 · 468 阅读 · 0 评论 -
POJ - 2318 TOYS(叉积+二分)
题目链接:点击查看题目大意:给出一个盒子,由n条互不相交的线段分割为n+1个空格,现在有m个玩具的坐标,现在问每个空格内有多少个玩具题目分析:利用叉积的性质判断点在直线的哪一侧:以点在直线左侧为例,对于一个点来说,n条线段就具有了单调性,以此二分找到该点右边的直线,则就确定了当前点所在的空格了代码:#include<iostream>#include<...原创 2020-01-27 13:45:12 · 239 阅读 · 0 评论