news 2026/5/24 14:10:02

华华给月月准备礼物【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
华华给月月准备礼物【牛客tracker 每日一题】

华华给月月准备礼物

时间限制:1秒 空间限制:32M

知识点:思维题

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

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

输入描述:

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

输出描述:

输出一行一个非负整数,表示华华最终得到的n nn根木棍的每根最大长度。

示例1

输入:

5 10 4 4 4 5 3

输出:

1

说明:

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

示例2

输入:

5 3 1 2 3 4 5

输出:

3

备注:

1 ≤ N ≤ 2 × 10 5 , 1 ≤ L i ≤ 10 9 , 1 ≤ K ≤ 10 9 1≤N≤2×10^5,1≤L_i≤10^9,1≤K≤10^91N2×1051Li1091K109

解题思路

首先计算所有木棍的总长度,若总长度小于K KK则直接输出0 00(无法剪出K KK根木棍,最长长度为0 00);否则采用二分查找确定最大可行长度,左边界l = 1 l=1l=1、右边界r rr为单根木棍的最大长度,每次取m i d = ( l + r + 1 ) / 2 mid=(l+r+1)/2mid=(l+r+1)/2(向上取中避免死循环),通过c h e c k checkcheck函数统计所有木棍按m i d midmid长度裁剪能得到的总根数(每根木棍可裁剪数为l e n [ i ] / m i d len[i]/midlen[i]/mid),若总数≥ K ≥KK说明m i d midmid可行,将左边界更新为m i d midmid,否则更新右边界为m i d − 1 mid-1mid1;最终左边界l即为能剪出K KK根木棍的最大整数长度。该方法通过二分将时间复杂度降至O ( N l o g ( m a x L ) ) O(N log(maxL))O(Nlog(maxL)),适配N NN2 e 5 2e52e5L i L_iLiK KK1 e 9 1e91e9的规模,高效且精准找到符合要求的最长长度。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=2e5+10;ll len[N];ll n,k;boolcheck(ll x){ll cnt=0;for(ll i=0;i<n;i++){cnt+=len[i]/x;if(cnt>=k)return1;}return0;}intmain(){cin>>n>>k;ll sum=0,mx=0;for(ll i=0;i<n;i++){cin>>len[i];sum+=len[i];mx=max(mx,len[i]);}if(sum<k){cout<<0;return0;}ll l=1,r=mx;while(l<r){ll mid=(l+r+1)/2;// 向上取中if(check(mid))l=mid;elser=mid-1;}cout<<l<<endl;return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 18:08:03

快递物流追踪:收件人接听VoxCPM-1.5-TTS-WEB-UI生成的派送进度播报

快递物流追踪&#xff1a;收件人接听VoxCPM-1.5-TTS-WEB-UI生成的派送进度播报 在快递员拨通电话&#xff0c;那头传来一句清晰自然的“您好&#xff0c;您的快递预计今天18点前送达&#xff0c;请注意查收”时&#xff0c;你是否会下意识以为这是人工客服&#xff1f;实际上&…

作者头像 李华
网站建设 2026/5/22 1:23:00

科研人员首选:VoxCPM-1.5-TTS-WEB-UI用于语音算法对比实验

科研人员首选&#xff1a;VoxCPM-1.5-TTS-WEB-UI用于语音算法对比实验 在语音合成研究的日常中&#xff0c;你是否曾为一次简单的模型测试而耗费半天时间&#xff1f;配置环境、安装依赖、调试接口、处理采样率不一致的问题……这些本该由工具解决的琐事&#xff0c;却常常吞噬…

作者头像 李华
网站建设 2026/5/23 1:16:54

学长亲荐10个一键生成论文工具,本科生轻松搞定毕业论文!

学长亲荐10个一键生成论文工具&#xff0c;本科生轻松搞定毕业论文&#xff01; 论文写作的救星&#xff0c;AI 工具如何改变你的学习方式 在当今这个信息爆炸的时代&#xff0c;学术写作的难度正逐年攀升。对于本科生来说&#xff0c;撰写一篇高质量的毕业论文不仅是一项挑战&…

作者头像 李华
网站建设 2026/5/20 14:51:01

【Java物联网数据解析实战】:掌握高效解析协议的5大核心技术

第一章&#xff1a;Java物联网数据解析概述在物联网&#xff08;IoT&#xff09;系统中&#xff0c;设备每秒生成海量的结构化与非结构化数据。Java凭借其跨平台能力、丰富的库支持以及强大的并发处理机制&#xff0c;成为解析和处理这些数据的首选语言之一。通过Java&#xff…

作者头像 李华
网站建设 2026/5/23 22:52:12

错过将落后一年!Java虚拟线程+线程池配置的稀缺实战指南

第一章&#xff1a;Java虚拟线程与线程池的演进背景在现代高并发应用场景中&#xff0c;传统基于操作系统线程的Java线程模型逐渐暴露出资源消耗大、上下文切换频繁等问题。随着用户请求量的指数级增长&#xff0c;尤其是微服务和云原生架构的普及&#xff0c;系统需要同时处理…

作者头像 李华