二分
ssl_yty
这个作者很懒,什么都没留下…
展开
-
【洛谷】【二分】最长公共子序列
当b[i]这个数在a中的位置在m[len]后面,可以直接加入。如果在前面,可以优化m数组,替换掉位置在其后面的。主要思路就是开数组将第一个序列的数位置存下来。然后开m数组存最长公共子序列,len存长度。正确性易证,不影响长度,也会让解更优。原创 2023-04-08 17:03:20 · 390 阅读 · 1 评论 -
【ssl】【二分】勇闯黄金十二宫射手宫
【ssl 2666】【二分】题目解题思路首先要注意是可不连续的先用一个数组标记出哥哥的基因出现位置然后用弟弟的去匹配存储目前与哥哥能匹配上的位置如果当前数在哥哥基因中出现的位置比上一次匹配的要后,直接加入否则找到第一个比ta大的位置,更新因为能匹配上的基因数量不变,更新位置使队列更优代码#include<iostream>#include<cstdio> using namespace std;int n,x,t,w[1000100],a[10001原创 2022-01-18 15:06:37 · 1343 阅读 · 0 评论 -
【洛谷 P1525】【二分】【二分图】关押罪犯
【洛谷 P1525】【二分】【二分图】关押罪犯解题思路首先两个监狱就想到了二分图尽量使同一颜色之间的矛盾小然后我就蒙了。。。二分一开始是没想到了二分枚举最大矛盾值超过这个矛盾值的一对犯人,填上不同颜色如果最后是一个二分图,说明这个矛盾值是大于等于答案代码#include<iostream>#include<cstring> #include<cstdio>using namespace std;struct lzf{ int x,to,原创 2021-12-10 19:28:45 · 287 阅读 · 0 评论 -
【ybtoj 冲刺 NOIP2021 模拟赛 B 组 Day9】 【二分】 【bfs】 道路与航线
【ybtoj 冲刺 NOIP2021 模拟赛 B 组 Day9】 【二分】 【bfs】 道路与航线题目题面解题思路二分时刻,跑bfs判断是否能连通快读提速代码#include<iostream>#include<cstring>#include<cstdio>using namespace std;struct lzf{ int to,nxt;}f[3000010];char w;int a,b,n,m,l,r,tot,ans;int原创 2021-11-13 17:04:24 · 111 阅读 · 0 评论 -
【ybtoj 冲刺 NOIP2021 模拟赛 B 组 Day8】【二分】中位数
【ybtoj 冲刺 NOIP2021 模拟赛 B 组 Day8】【二分】中位数题目解题思路我是一个小菜鸡,怎么暴力怎么来两个二分,然后AC了???第一个大二分,枚举中位数预处理出中位数的位置w如果目前枚举的中位数有大于等于w个数<=这个中位数,说明它在真正的中位数后面或就是真的中位数第二个小二分,就是要找到有多少个差值比枚举的中位数小要特批一下,如果一共有偶数个差值,中位数要找出两个,然后相机除二代码#include<algorithm>#include&l原创 2021-11-06 16:16:40 · 107 阅读 · 0 评论 -
【gmoj】 【二分】 Acowdemia
【gmoj】 【二分】 Acowdemia题目解题思路二分枚举h查找是否写k篇综述后有>=h篇论文的被引用次数>=h代码#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>using namespace std;long long n,k,d,l=1,r,a[100010],ans;bool cmp(int l,int y){原创 2021-08-14 16:50:12 · 210 阅读 · 0 评论 -
【gmoj】【二分】平均数
【gmoj】【二分】平均数题目解题思路暴力n2求前缀和后枚举左右边界求平均值即可二分平均值用每个数减去平均值求前缀和枚举右边界 ~~因为子序列大于等于k即可,那么1i-k+1都可做左边界,为了最优肯定拿最小的~如果最后求出来的值>=0说明这个平均值可以求出来代码#include<iostream>#include<cstdio>using namespace std;int n,k,a[300010],sum[300010];double b[3原创 2021-08-09 21:26:58 · 141 阅读 · 0 评论 -
[poj] [01分数规划] Dropping tests
[poj] [01分数规划] Dropping tests题目传送门题目大意可从n场考试中选n-k+1场使得∑ai/∑bi最大解题思路二分枚举一个最大比值x使得∑ai/∑bi >=x转移可得∑a>=∑bi *x也就是∑ai-∑bi x>=0从大到小快排求出前n-k+1个的ai-bix判断是否大约等于0代码#include<algorithm>#include<iostream>#include<cstdio>usin原创 2021-07-11 21:15:08 · 74 阅读 · 0 评论 -
【ybtoj 入门模拟赛】 【最长不下降子序列】 经典lis
【ybtoj 入门模拟赛】 【最长不下降子序列】 经典lis题目解题思路维护最长不下降子序列如果大于等于最后一个数直接加入如果不行替换序列中的数维护序列最长且最小代码#include<iostream>#include<cstdio>using namespace std;string s,da;int fg,len,flag;int main(){ freopen("java_c.in","r",stdin); freopen("java_c原创 2021-04-17 12:07:27 · 84 阅读 · 0 评论 -
【ybtoj 高效进阶 1.3】【二分】 最大均值
【ybtoj 高效进阶 1.3】【二分】 最大均值题目解题思路二分枚举平均值求出所有数减去平均值之后的前缀和如果一段区间和为非负数说明这段区间的评价值大于当前的mid两重循环枚举区间范围直接裂开可以想到是长不小于L的区间所以减去一个更小的值,区间的和会更优只需要知道1~i-L中最小的值就可以只需要枚举期间终点即可代码#include<iostream>#include<cstring>#include<cstdio>#include原创 2021-01-02 19:00:07 · 108 阅读 · 0 评论 -
【ybtoj 高效进阶 1.3】 【二分】 防具布置
【ybtoj 高效进阶 1.3】 【二分】 防具布置题目解题思路看一眼数据范围裂开o(≧口≦)o不可能用桶排若pd(231-1)为偶数,则整道防线没有破绽有破绽就会是奇数啊因为只有一个破绽二分破绽的位置如果这个位置的防具总数是奇数说明破绽在前面否则在后代码#include<iostream>#include<cstdio>using namespace std;long long l,r,s[200100],e[200100],d[20010原创 2020-12-30 17:27:06 · 100 阅读 · 0 评论 -
【ybtoj 高效进阶 1.3】 【二分】数列分段
【ybtoj 高效进阶 1.3】 【二分】数列分段题目解题思路二分所有段中和的最大值累加所有数的和作为初始右边界代码#include<iostream>#include<cstdio>using namespace std;int a[100020],n,m,l,r;bool pd(int x){ int sum=0,ans=1; //sum是当前段的和,ans是当前分了几段 for (int i=1;i<=n;i++) {原创 2020-12-30 17:15:14 · 103 阅读 · 0 评论 -
【10.30 校内普及组】【二分】【数学】 有趣的水管 题解
【10.30 校内普及组】【二分】【数学】 有趣的水管 题解题目解题思路暴力一开始想暴力从输出口为k的倒序累加到2如果累加和大于n退出输出个数很明显,会超时二分二分求mid为分离器的个数假设每个输出口都为k除去第一个不会占用上一个分离器的一个输出口,别的都会所以要减去(mid-1)输出口的个数是k,k-1,k-2…k-mid+1减去的数是一个等差数列求和得mid*(mid-1)/2总式子即:midk-(mid-1)-mid(mid-1)/2代码#include原创 2020-10-31 07:54:12 · 479 阅读 · 0 评论 -
【10.27 校内普及组】 小biu放牛 题解
【10.27 校内普及组】 小biu放牛 题解题目解题思路一开始用的贪心,35正解是二分二分最长的绳子的长度如果牛和木桩可以放在同一位置尽量让牛往左给后面让位置代码#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;int n,x,m,l,r,ans,p[50010],f[50010];bool pd原创 2020-10-29 07:21:07 · 243 阅读 · 0 评论 -
松中提高组模拟赛8.24 选数排列 题解
松中提高组模拟赛8.24 选数排列 题解题目给出 NNN 个数,我们需要选择其中的 RRR×CCC 个数,,把它们填入一个 RRR×CCC 的矩阵(RRR 行 CCC 列)中。我们先定义一个函数 DDD(iii) 代表第 iii 行中最大的数和最小的数之差。对于整个矩阵,定义 FFF 为矩阵中 DDD(iii)(1≤iii≤RRR) 的最大值。我们需要 FFF 的值最少,你能求出最少可能达到的 FFF 值是多少吗?输入z第一行给出 3 个整数 NNN,RRR,CCC,对应题目中描述的参数。原创 2020-08-24 16:46:30 · 154 阅读 · 0 评论