2020-10-03

Flowers

题目描述

Recently Jack becomes much more romantic. He would like to prepare several bunches of flowers.

Each bunch of flowers must have exactly M flowers. As Jack does not want to be boring, he hopes that flowers in the same bunch are all different species. Now there are {N}N species of flowers in the flower shop, and the number of the i-th species of flower is a_ia
i

. Now Jack would like to know how many bunches of flowers he can prepare at most.

\textit{(Flowers are used to propose.)}(Flowers are used to propose.)
输入描述:
The first line contains an integer {T}T (1 \le T \le 101≤T≤10) — the number of test cases.
In the first line of each test case, there are two integers {N}N, {M}M (1 \le N, M \le 300,0001≤N,M≤300000) — the number of flowers’ species and the number of flowers in a bunch.
In the second line of each test case, there are {N}N integers — the {i}i-th integer indicates ai the number of {i}i-th species’ flowers.
输出描述:
For each test case, output one integer in one line — the answer of the corresponding test case.
示例1
输入
复制

1 
5 3 
1 1 1 2 1

输出
复制

2

题意:

一共有n种花,每种花数量为a[i],要用这些花来做成花束,每个花束必须正好有M多花,且都是不同品种,问最多能做成多少束花

题解:

假设能做成x束花,那么就需要花的总量为xm,一共有n种花,如果a[i]>x,也就是这种花可以用在每一束,也就是第i种花最多用x个,如果a[i]<x,那第i种花就要全部用完才可以。
我们用tot来记录在x个花束的情况下,现有的能提供多少花
也就是看当前x的情况下,每一种花所能做的贡献是多少,tot为贡献和
如果tot>x
m,即供给大于需求,说明情况成立,最佳答案肯定大于等于x
如果tot<xm,即供给小于需求,说明情况不成立,组价答案肯等小于等于x
这样x我们就可以用二分来确定,条件的判断即tot与x
m的关系

代码:

#include<cstdio>
#include<iostream>
#include<queue>
#include<set>
#include<algorithm>
using namespace std;
const int maxn=4e5+8;
typedef long long ll;
ll a[maxn];int n,m;
bool check(ll x)//x束花 
{ll tot=0;for(int i=1;i<=n;i++)tot+=min(a[i],x);if(tot>=x*m)return 1;return 0;
}
int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int t;cin>>t;while(t--){cin>>n>>m;ll sum=0;for(int i=1;i<=n;i++){cin>>a[i];sum+=a[i];}ll l=0,r=sum/m,ans;while(l<=r){ll mid=(l+r)>>1;if(check(mid)){l=mid+1;ans=mid;}else r=mid-1;}cout<<ans<<endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319251.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P4770-[NOI2018]你的名字【SAM,线段树合并】

正题 题目链接:https://www.luogu.com.cn/problem/P4770 题目大意 给出一个长度为nnn的字符串SSS。qqq次询问给出一个串TTT和一个区间[L,R][L,R][L,R]&#xff0c;求TTT有多少个本质不同的子串不是SL∼RS_{L\sim R}SL∼R​的子串。 1≤n≤5105,1≤Q≤105,∑∣T∣≤1061\leq n…

.NET in Browser - Blazor

什么是BlazorBlazor 是一个实验性的. NET web 框架, 使用 C# 和 HTML 在任何浏览器中不需要插件即可运行 WebAssembly 程序集。什么是WebAssemblyWebAssembly是一种新的适合于编译到Web的&#xff0c;可移植的&#xff0c;大小和加载时间高效的格式&#xff0c;是一种新的字节码…

【数论】【杜教筛】选数(P3172)

正题 P3172 题目大意 在 [L,R] 选n个数&#xff0c;问gcdk的方案数 解题思路 因为gcdk&#xff0c;那么所选的数都是k的倍数&#xff0c;那么可以让L,R整除k&#xff0c;那么有 ∑a1LR∑a2LR...∑anLR[gcd(a1,a2...an)1]\sum_{a_1L}^R\sum_{a_2L}^R...\sum_{a_nL}^R[gcd(a_1…

【模板】吉老师线段树

ACM模板 目录区间取最值区间取最值 Gorgeous Sequence 区间最值操作往往采用以下办法 线段树维护&#xff1a; 区间最大值mx\text{mx}mx区间严格次大值smx\text {smx}smx区间和sum\text{sum}sum区间最大值个数cnt\text{cnt}cnt区间最值懒标记lazy\text{lazy}lazy 实现区间…

2020牛客国庆集训派对day4 Digits Are Not Just Characters

Digits Are Not Just Characters 题意&#xff1a; 比较大小&#xff0c;如果比目标字符串大输出“”&#xff0c;相等也输出“”&#xff0c;小则输出“-”&#xff1a; 比较规则&#xff1a; 字母大于数字 两个字母比较按照ASCII码 当被解释为十进制数时&#xff0c;两个数…

CF453C-Little Pony and Summer Sun Celebration【构造】

正题 题目链接:https://www.luogu.com.cn/problem/CF453C 题目大意 nnn个点mmm条边的一张无向图&#xff0c;每个节点有一个wiw_iwi​表示该点需要经过奇数/偶数次。 求一条满足条件的长度不超过4n4n4n的路径 1≤n,m≤1051\leq n,m\leq 10^51≤n,m≤105 解题思路 一个结论就…

在碰撞中成长 - 北京银行的DevOps实践之路

2018年10/27日&#xff0c;在上海召开的微软年度最大规模的技术盛会—微软2018技术暨生态大会上&#xff0c;北京银行渠道系统负责人&敏捷团队负责人周兵女士和大家一起分享了北京银行的DevOps 实践转型经验&#xff0c;得到了大会听众的热烈评价和共鸣&#xff0c;会后众多…

【笛卡尔树】【线段树】meetings 会议(P5044)

正题 P5044 题目大意 给出一个序列a&#xff0c;设 dist(x,y)max⁡ixyaidist(x,y)\max_{ix}^ya_idist(x,y)maxixy​ai​&#xff0c;有m个询问&#xff0c;对于每个询问&#xff0c;给出 l,r&#xff0c;让你找一个点x(l≤x≤r)(l\leq x\leq r)(l≤x≤r)&#xff0c;使得 ∑i…

codeforces438 D. The Child and Sequence

2020威海区域赛G. Caesar Cipher就用到了此思想&#xff08; 今天碰到模板题了还是再写一遍吧 D. The Child and Sequence 区间取模操作模板题 有一个公式 x%p<x2(x>p)x\%p<\frac{x}{2}(x>p)x%p<2x​(x>p) 由此对于每一个数最多模log次&#xff0c;如果我们…

2020牛客国庆集训派对day4 Emergency Evacuation

Emergency Evacuation 题意&#xff1a; 有n个人在不同的位置上&#xff0c;在最后面有一个出口exit&#xff0c;所有人都要逃离出去&#xff08;走出出口&#xff09;&#xff0c;且每个格子最多容纳一个人&#xff0c;当有人挡在前面时&#xff0c;后面的人必须停留&#x…

P3170-[CQOI2015]标识设计【插头dp】

正题 题目链接:https://www.luogu.com.cn/problem/P3170 题目大意 给出n∗mn*mn∗m的网格上有一些障碍&#xff0c;要求用三个LLL形&#xff08;高宽随意&#xff0c;不能退化成线段/点&#xff09;覆盖格子且LLL形之间不能重叠。 求覆盖方案&#xff08;每个LLL形相同&…

【活动(广州)】MonkeyFest2018 微软最有价值专家讲座

MonkeyFest2018微软最有价值专家讲座Monkey Fest 是一个一年一度由全球Microsoft Xamarin跨平台开发者发起的全球性社区活动&#xff0c;主要是推广在云、人工智能、大数据、移动开发等技术。本次活动同时在新加坡&#xff0c;美国&#xff0c;日本&#xff0c;加拿大&#xff…

【数学】Natasha, Sasha and the Prefix Sums(CF1204E)

正题 luogu CF1204E 题目大意 给出序列a&#xff0c;由n个1和m个-1组成&#xff0c;设 f 为最大前缀和和0的最大值&#xff0c;问全排列的 f 之和 解题思路 可以问题转换到平面图上&#xff0c;把1看作往上走&#xff0c;-1看作往下走 那么问题就变成了求 (0,0) 到 (nm,n-m…

codeforces1454 F. Array Partition

这周忙死&#xff0c;一直没机会吧补一下题&#xff0c;周二晚上打的div3&#xff0c;过了A~E&#xff0c;F就看了下题目就没时间了&#xff0c;无聊的时候想应该会用到ST表&#xff0c;然后想要维护指针&#xff0c;后来写的时候发现维护不了&#xff0c;然后就歇菜了。。。 …

2020牛客国庆集训派对day4 Arithmetic Progressions

Arithmetic Progressions 链接&#xff1a;https://ac.nowcoder.com/acm/contest/7831/B 来源&#xff1a;牛客网 题目描述 An arithmetic progression is a sequence of numbers a1, a2, ..., ak where the difference of consecutive members ai1−ai is a constant (1 ≤ …

P4457-[BJOI2018]治疗之雨【期望dp,高斯消元】

正题 题目链接:https://www.luogu.com.cn/problem/P4457 题目大意 开始一个人最大生命值为nnn&#xff0c;剩余hphphp点生命&#xff0c;然后每个时刻如果生命值没有满那么有1m1\frac{1}{m1}m11​的概率回复一点生命&#xff0c;然后敌人攻击kkk次&#xff0c;每次有1m1\frac…

互联网公司为什么普遍996而不是666

根据skinshoe wu的遭遇&#xff0c;解释一下互联网行业的12小时工作制以及996。题目说的有点绝对&#xff0c;这里先澄清一下&#xff1a;有的公司是10106&#xff0c;9106&#xff0c;10126&#xff0c;995&#xff0c;甚至955&#xff0c;007的都有&#xff0c;我只说大多数&…

【DP】【四边形不等式】邮局(P4767)

正题 P4767 题目大意 给出坐标轴上的n个点&#xff0c;让你选择m个点作为特殊点&#xff0c;使所有点到最近特殊点的距离之和最小 解题思路 考虑对于一个区间选择一个特殊点的最小代价&#xff0c;可以把所有点到当前点的路径分割开来&#xff0c;即每段距离走的次数为1,2,3…

IdentityServer4之JWT签名(RSA加密证书)及验签

一、前言在IdentityServer4中有两种令牌&#xff0c;一个是JWT和Reference Token&#xff0c;在IDS4中默认用的是JWT&#xff0c;那么这两者有什么区别呢&#xff1f;二、JWT与Reference Token的区别1、JWT(不可撤回)  JWT是一个非常轻巧的规范&#xff0c;一般被用来在身份提…

2020牛客国庆集训派对day4 What Goes Up Must Come Down

What Goes Up Must Come Down 题意&#xff1a; 我们规定一个序列合理&#xff1a;当一个序列左部分是非降序列&#xff0c;右部分是非升序列&#xff08;左右部分可为0&#xff0c;也就是整体可以为非降序列&#xff0c;非升序列&#xff09; 题解&#xff1a; 树状数组来…