二分
Youkiup
这个作者很懒,什么都没留下…
展开
-
对二分的理解
将二分区间看成01串,如1,1,1,0,0,0,0,0,0(1-9)如果用左闭右开区间写,那么最终l=r=最先出现0的位置分析一下当a[mid]=1时,l=mid+1,说明 l 想往右找0,当a[mid]=0时,r=mid,r端点是开,不在所维护的区间内,且跳出条件是l==r,说明维护的区间就是有1的区间,当区间内没有1的时候,l和r同时指向第一个出现的0#include<bits/stdc++.h>using namespace std;typedef long long ll;原创 2021-10-28 02:28:54 · 118 阅读 · 0 评论 -
3.19装备合成(三分)
第19节 装备合成牛牛有件材料和件材料,用件材料和件材料可以合成一件装备,用件材料和件材料也可以合成一件装备。牛牛想要最大化合成的装备的数量,于是牛牛找来了你帮忙。输入描述:输入包含组数据第一行一个整数接下来行每行两个整数输出描述:每组数据输出一行一个整数表示答案。示例1输入54 87 68 10100 455545465 24124输出2235013917备注:三分:假设第一种装备合成了m件,那么第二种装备可以合成min((x-2m)/4,y-3m)件;那原创 2021-10-16 21:26:30 · 155 阅读 · 0 评论 -
3.5 栗酱的不等式(二分)
第5节 栗酱的不等式有不等式y⋅x3≤ n,已知y为正整数,x为大于1的正整数,问当x和y的解数量刚好为m的时候n的最小值,如果不存在输出 -1。输入描述:多组数据读入。每组数据一个数字m,如题所示。输出描述:每组数据输出一行,输出答案。示例1输入1输出8说明当方案恰好只有一种的时候,n的最小值为8,此时y=1,x=2。备注:1 ≤ m ≤ 1016#include <bits/stdc++.h>using namespace std;typedef long原创 2021-10-16 01:14:26 · 87 阅读 · 0 评论 -
3.7 wyh的物品(01分数规划,二分)
第7节 wyh的物品wyh学长现在手里有n个物品,这n个物品的重量和价值都告诉你,然后现在让你从中选取k个,问你在所有可能选取的方案中,最大的单位价值为多少(单位价值为选取的k个物品的总价值和总重量的比值)输入描述:输入第一行一个整数T(1<=T<=10)接下来有T组测试数据,对于每组测试数据,第一行输入两个数n和k(1<=k<=n<=100000)接下来有n行,每行两个是a和b,代表这个物品的重量和价值输出描述:对于每组测试数据,输出对应答案,结果保留两位小数原创 2021-10-16 11:31:29 · 296 阅读 · 0 评论 -
3.8 聪明的质监员 (快读,前缀和,差分,二分)
第8节 聪明的质监员P1314 [NOIP2011 提高组] 聪明的质监员#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=2e5+10;ll n,m,s;ll w[N],v[N];ll cot[N],cct[N]; ll len;ll l[200005],r[200005];ll read(){ ll x=0,f=1;char ch=getchar(); whil原创 2021-10-16 15:15:37 · 142 阅读 · 0 评论 -
3.4 小咪买东西(01分数规划 二分)
第4节 小咪买东西小咪是一个土豪手办狂魔,这次他去了一家店,发现了好多好多(n个)手办,但他是一个很怪的人,每次只想买k个手办,而且他要让他花的每一分钱都物超所值,即:买下来的东西的总价值/总花费=max。请你来看看,他会买哪些东西吧。输入描述:多组数据。第一行一个整数T,为数据组数。接下来有T组数据。对于每组数据,第一行两个正整数n,k,如题。接下来n行,每行有两个正整数ci,vi。分别为手办的花费和它对于小咪的价值。输出描述:对于每组数据,输出一个数,即能得到的总价值/总花费的最大值。原创 2021-10-15 20:57:08 · 317 阅读 · 0 评论 -
牛客 1.17 Subsequence(尺取法,二分)
第17节 SubsequenceA sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, and a positive integer S (S < 100 000 000) are given. Write a program to find the minimal length of the subsequence of consecutive elemen原创 2021-07-20 15:24:57 · 82 阅读 · 0 评论 -
3.10 [CQOI2010]扑克牌(二分)
第10节 [CQOI2010]扑克牌你有n种牌,第i种牌的数目为ci。另外有一种特殊的牌:joker,它的数目是m。你可以用每种牌各一张来组成一套牌,也可以用一张joker和除了某一种牌以外的其他牌各一张组成1套牌。比如,当n=3时,一共有4种合法的套牌:{1,2,3}, {J,2,3}, {1,J,3}, {1,2,J}。 给出n, m和ci,你的任务是组成尽量多的套牌。每张牌最多只能用在一副套牌里(可以有牌不使用)。输入描述:第一行包含两个整数n, m,即牌的种数和joker的个数。第二行包含n原创 2021-10-16 18:43:15 · 137 阅读 · 0 评论