牛客网【每日一题】4月17日题目精讲 华华给月月准备礼物

文章目录

    • 题目描述
    • 题解:
    • 代码:
    • 推荐例题:

试题链接

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

二月中旬虐狗节前夕,华华决定给月月准备一份礼物。为了搭建礼物的底座,华华需要若干根同样长的木棍。华华手头上有一些长度参差不齐的木棍,他想将每根都裁剪成若干段自己想要的长度,并丢掉多余的部分。因为华华的手很巧,所以他的裁剪过程不会有任何的失误。也就是说,对于一根长度为N的木棍,华华可以精准的将它们裁剪为若干段木棍,使它们的长度之和为N。
华华不知道裁剪成多长比较好,所以干脆越长越好。不过由于华华有点强迫症,所以他希望长度为非负整数。保证所有木棍的原长也是非负整数。那么请问华华最终得到的每根木棍多长呢?
输入描述:

第一行两个正整数N、K,表示木棍原本的根数和华华希望得到的木棍根数。 第二行N个正整数Li表示每根木棍的初始长度。

输出描述:

输出一行一个非负整数表示每根木棍的最大长度。

示例1
输入

5 10
4 4 4 5 3

输出

1

说明

如果长度为2,只能得到2+2+2+2+1=9根,不够;长度为1可以得到4+4+4+5+3=20根,足够。所以答案最大是1。

示例2
输入

5 3
1 2 3 4 5

输出

3

备注:
在这里插入图片描述

题解:

二分的模板题吧
我们假设最后结果是ans,那么小于等于ans的答案都是符合条件的(只是不是最大),而大于ans的肯定不行,那ans怎么确定呢?
这里就用到二分,一开始左界left=1,右界right=最长的木棍长度(也可以初始值为1e9+1,因为木棍再长也不可能大于1e9),然后去这段区间的中间值mid,然后判断mid是否符合条件,如果符合条件,说明mid左边的都可以,右边的不一定,右边有可能还有更优的答案,也可以没有,所以left=mid+1,开始探索mid右边的未知区域。但如果不符合条件,说明当前mid右边更不符合,只有左边才存在符合条件,right=mid-1,探索左边区域,一直这样二分找到最佳答案

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=2e5+4;
ll l[maxn];
int n,k;ll sum;
ll check(ll len)
{sum=0;for(int i=1;i<=n;i++)sum+=l[i]/len;return sum;
}
int main()
{cin>>n>>k;for(int i=1;i<=n;i++)cin>>l[i];ll ans=0;ll left=1,right=1e9+1,mid;while(left<=right){mid=(left+right)>>1;if(check(mid)>=k){left=mid+1;ans=mid;}else {right=mid-1;}}cout<<ans;return 0;
} 

推荐例题:

NC16462 跳石头
noip day2 T1题目,也是经典的二分题目,刚学二分的可以练练手

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

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

相关文章

[BZOJ 3173] [TJOI 2013] 最长上升子序列(splay)

根据题意很容易得到最原始的做法&#xff1a; #include<iostream> #include<cstdio> #include<cstring> #include<vector> using namespace std; const int N100005; int n,m,f[N]; int main(){scanf("%d",&n);int x;for(int i1;i<n…

P4300-[AHOI2006]上学路线【网络流,最短路】

正题 题目链接:https://www.luogu.com.cn/problem/P4300 题目大意 nnn个点mmm条边的无向图。求1∼n1\sim n1∼n的最短路和删除cic_ici​和最小的边使得最短路变长。 解题思路 显然我们需要跑一次最短路。 之后考虑如何求第二问&#xff0c;我们发现我们要割掉最短路上的边&a…

Mathematics(jzoj 1747)

Mathematics jzoj 1747 题目大意 有n堆石子&#xff0c;总和为2k2^k2k&#xff0c;现在对于两堆石子&#xff0c;你可以从a中取b的分量到b&#xff08;a要大于b&#xff09;&#xff0c;问合成一堆大小为2k2^k2k的石子要怎么做&#xff08;输出a,b&#xff09; 输入样例 2…

Bing.com在.NET Core 2.1上运行

相关知识请参考.netCore开发团队博客 https://blogs.msdn.microsoft.com/dotnet/ Bing.com是一种云服务&#xff0c;运行在遍布全球许多数据中心的数千台服务器上。Bing服务器每秒处理来自全球消费者的数千个用户查询&#xff0c;通过他们的浏览器&#xff0c;使用Microsoft认…

Jelly

链接&#xff1a; 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format:%lld 题目描述 Nancy喜欢吃果冻&#xff01; Nancy钻进了一个n \times n \times nnnn的果冻里&#xff0c;她想从(1,1,1)一…

[bzoj 4811] 由乃的OJ(贪心 + 树链剖分)

前置技能&#xff1a;[Noi2014]起床困难综合症。 不难看出&#xff0c;这道题其实就是上一道题的加强版 在上一道题中&#xff0c;因为位运算时位与位之间互不干扰 所以从高位到低位枚举初始值二进制上的每一位为0和为1时&#xff0c;经过n次计算后这一位的结果&#xff0c;贪…

P4055-[JSOI2009]游戏【网络流,博弈】

正题 题目链接:https://www.luogu.com.cn/problem/P4055 题目大意 n∗mn*mn∗m的网格有的不能走&#xff0c;走过的不能走。开始有一个棋子先手可以决定位置&#xff0c;然后后先手轮流走&#xff0c;不能走的就输了&#xff0c;求先手的必胜开始位置。 解题思路 我们将图二分…

【贪心】逃跑(jzoj 1748)

逃跑 jzoj 1748 题目大意 你有一个能量值l&#xff0c;在接下来的n天里&#xff0c;你每天有两个选择&#xff1a; 1、增加l个食物 2、使l加一&#xff0c; 你第i天要吃ai个a_i个ai​个食物&#xff0c;如果吃不到就会死掉&#xff0c;现在问你n天后你能活下去吗&#xff0c…

c#中关于协变性和逆变性(又叫抗变)帮助理解

今天回忆了之前看的《深入理解C#》这本书中的泛型章节&#xff0c;其中对泛型的可变性的理解。泛型可变性分两种&#xff1a;协变和逆变。逆变也又称为抗变。怎么理解这两个名词的意思&#xff1a;①&#xff1a;协变即为在泛型接口类型中使用out标识的类型参数。协变的字面意思…

「木」迷雾森林

链接&#xff1a; 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format:%lld 题目描述 赛时提示&#xff1a;保证出发点和终点都是空地 帕秋莉掌握了一种木属性魔法 这种魔法可以生成一片森林&am…

【单调队列】【DP】城市交通(jzoj 1749)

城市交通 jzoj 1749 题目大意 有n个点&#xff0c;x到y的前提是x<y,代价是(y−x)∗axby(y-x)*a_xb_y(y−x)∗ax​by​&#xff0c;问从1到n的最小代价是多少 输入样例 4 2 9 5 4 9 1 2 2输出样例 8数据范围 对于20%的数据&#xff0c;1⩽n⩽100&#xff1b;1\leqslan…

P5546-[POI2000]公共串【SAM】

正题 题面链接:https://www.luogu.com.cn/problem/P5546 题目大意 求nnn个串的最长公共子串。 解题思路 注意到最长公共子串一定是其中所有的子串&#xff0c;所以我们可以先随意对一个串构建SAMSAMSAM然后将信息存在上面即可。 然后每一个其他串都丢到那个SAMSAMSAM上跑匹…

C# 7.0中的解构功能---Deconstruct

解构元组C#7.0新增了诸多功能&#xff0c;其中有一项是新元组(ValueTuple)&#xff0c;它允许我们可以返回多个值&#xff0c;并且配合解构能更加方便的进行工作&#xff0c;如下面例子可以看到解构元组可以写出优雅的代码&#xff0c;并且可以使用类型推断&#xff0c;但在这里…

csp初赛复习(往年真题+解析)

排序算法 前缀/后缀表达式 二进制补码、反码 最短路 图片/音频/视频文件格式 前序/中序/后序遍历 以比较作为基本运算&#xff0c;在 N 个数中找最小数的最少运算次数为&#xff08; &#xff09;。 A. NNN B. N−1N-1N−1 C. N2N^2N2 D. logNlogNlogN 正确答案&#xff1a; B …

纪中B组模拟赛总结(2020.2.7)

成绩 rankrankranknamenamenamescorescorescoreT1T1T1T2T2T2T3T3T3141414lyflyflyf190190190100100100909090000 总结 T1看了一会看出是二进制&#xff0c;就敲了出来 T2想不到正解&#xff0c;就敲了一个暴力&#xff0c;竟水到了90分&#xff0c;正解是要有撤回的贪心 T3以为…

CF932F-Escape Through Leaf【树上启发式合并,CDQ分治,斜率优化dp】

正题 题面链接:https://www.luogu.com.cn/problem/CF932F 题目大意 nnn个点的一棵树&#xff0c;从xxx跳到yyy&#xff08;要求yyy在xxx的子树中&#xff09;会产生Ax∗ByA_x*B_yAx​∗By​的代价&#xff0c;求每个节点出发跳到某个叶节点的最小代价。 解题思路 考虑dpdpdp的…

ASP.NET Core 2.1中基于角色的授权

授权是来描述用户能够做什么的过程。例如&#xff0c;只允许管理员用户可以在电脑上进行软件的安装以及卸载。而非管理员用户只能使用软件而不能进行软件的安装以及卸载。它是独立的而又与验证配合使用&#xff0c;需要身份验证机制。对于应用程序来说&#xff0c;首先需要进行…

CF449B Jzzhu and Cities(Dijkstra)

设每个点到1的距离为dis[x]dis[x]dis[x],特殊边为(1,vi,wi)(1,v_i,w_i)(1,vi​,wi​) 1、wi>dis[vi]w_i>dis[v_i]wi​>dis[vi​]的特殊边可以删除 2、widis[vi]且num[vi]>1w_idis[v_i]且num[v_i]>1wi​dis[vi​]且num[vi​]>1,特殊边可以删掉 思路上的偏差&…

Sunscreen

来源&#xff1a;牛客网 Sunscreen 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 32768K&#xff0c;其他语言65536K 64bit IO Format: %lld 题目描述 To avoid unsightly burns while tanning, each of the C (1 ≤ C ≤ 2500) cows must co…

【dfs】无穷迷宫(jzoj 3924)

无穷迷宫 jzoj 3924 题目大意 有一个n*m的迷宫&#xff0c;有墙&#xff08;#&#xff09;&#xff0c;路&#xff08;.&#xff09;&#xff0c;和你的位置&#xff08;S&#xff09;&#xff0c;这个迷宫会复制无数份拼在一起&#xff0c;问你能不能不停地走下去 输入样例…