1731: 数棍子(二分,最后一个大于等于)
1731: 数棍子
时间限制: 1 Sec 内存限制: 128 MB
[提交][状态][讨论版]
题目描述
假如你手头上有一些长度参差不齐的木棍,他想将每根都裁剪成若干段自己想要的长度,并丢掉多余的部分。因为你的手很巧,所以你的裁剪过程不会有任何的失误。也就是说,对于一根长度为N的木棍,你可以精准的将它们裁剪为若干段木棍,使它们的长度之和为N。
你不知道裁剪成多长比较好,所以干脆越长越好。不过由于你有点强迫症,所以你希望长度为非负整数。保证所有木棍的原长也是非负整数。那么请问你最终得到的每根木棍多长呢?
输入
第一行两个正整数N、K,表示木棍原本的根数和华华希望得到的木棍根数。
第二行N个正整数
L
i
表示每根木棍的初始长度。
多组数据输入
1≤N≤2×1e5,1≤Li≤1e9,1≤K≤1e9
输出
输出一行一个非负整数表示每根木棍的最大长度
样例输入
5 10
4 4 4 5 3
5 3
1 2 3 4 5
样例输出
1
3
提示
第一组数据:如果长度为2,只能得到2+2+2+2+1=9根,不够;长度为1可以得到4+4+4+5+3=20根,足够。所以答案最大是1
来源
Ac_code:
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL maxn = 2e5+5;
LL a[maxn];
int main()
{LL n,k;while(~scanf("%lld%lld",&n,&k)){LL l = 1,r = 0;LL ans = 0;LL sum = 0;for(LL i = 0; i < n; i++){scanf("%lld",&a[i]);sum += a[i];r = max(a[i],r);}if(sum <= k){if(sum == k) ans = 1;printf("%lld\n",ans);continue;}while(l <= r){LL mid = (l+r)>>1;LL cnt = 0;for(LL i = 0; i < n; i++){cnt += a[i]/mid;}if(cnt >= k){l = mid + 1;}else{r = mid - 1;}}ans = r;printf("%lld\n",ans);}return 0;
}
1731: 数棍子(二分,最后一个大于等于)相关推荐
- 『ACM-算法-二分法』在单调递增序列a中查找小于等于x的数中最大的一个(即x或x的前驱)
写在前面:我们主要还是分享算法的模板,而不是去刨析算法的原理! 定义: 二分答案是指在答案具有单调性的前提下,利用二分的思想枚举答案,将求解问题转化为验证结果. 流程: 首先需要估计答案的上下界,然后 ...
- 使用for循环实现:验证“歌德巴郝猜想:任意一个大于等于4的偶数可写成两个素数之和”
#include <stdio.h> //设置函数素数,若为素数则返回值为1,否则为0 int sushu(int x) {int i;for (i=2;i<x;i++){if(x% ...
- 函数字节不对齐函数崩溃_Excel中统计字符数,不需要一个一个的数,len函数能轻松搞定...
简介:要统计Excel单元格中的字符数,不需要一个一个的数,利用len函数就能轻松搞定. 问:什么是len函数? 答:自动统计字符数的函数 问:怎样记住len函数 答:len是length(长度)的简 ...
- Java黑皮书课后题第5章:*5.31(金融应用:计算CD价值)假设你用10 000美元投资一张CD,年利率为5.75%。编写程序,提示由用户输入一个金额数、年获利率、月份数,然后显示一个表格
5.31(金融应用:计算CD价值)假设你用10 000美元投资一张CD,年获利率为5.75%.编写程序,提示由用户输入一个金额数.年获利率.月份数,然后显示一个表格 题目 题目概述 运行示例 破题 代 ...
- python怎么设置回文数_python如何写一个函数判断回文数?
python如何写一个函数判断回文数? python写一个函数判断回文数的方法: 设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数.例如,若n=1234321,则称 ...
- 验证哥德巴赫猜想:任何一个大于等于6的偶数均可表示为两个素数的和。如6=3+3,8=3+5,,18=5+13。试编写程序,要求将输入的一个偶数表示成两个素数之和。 输入输出样例如下:
验证哥德巴赫猜想:任何一个大于等于6的偶数均可表示为两个素数的和.如6=3+3,8=3+5,,18=5+13.试编写程序,要求将输入的一个偶数表示成两个素数之和. 输入输出样例如下: 98 98 = ...
- 歌德巴赫猜想:任意一个大于等于6的偶数都能拆分为2个质数之和:如:8=3+5 求证6到1000内的所有偶数都成立
哥德巴赫猜想:任意一个大于等于6的偶数都能拆分为2个质数之和:如:8=3+5 求证6到1000内的所有偶数都成立 for(int n=6;n<=1000;n++){ //定义变量m从2开始跑到 ...
- 帆软的数知鸟是一个什么东西
文章目录 一. 数知鸟(数知鸟目前是完全免费的2022.8.24) 1.是什么东西 2.需求 3.里面还有脑图 今天看了一下这个东西,写一下记录 这个东西还是不需要怎么了解,就算是你公司用这个,你只需 ...
- C# 利用linq获取一组数中几个连续数中最大的一个数字
提供一个数组,其中部分数据是连续的,比如0~20的一组数据,其中少了一个数,假设少了11,那么连续中最大的数字就是10, 假如数组不是从0开始,假设是3~20,中间少了1个数,假如少了8,那么连续中最 ...
最新文章
- 如何将深度学习研究论文实现为代码的几个要点
- GNU make manual 翻译(五十七)
- OpenCV中图像窗口的鼠标事件
- DevNet网站上线
- 递归函数中局部变量和全局变量
- aws spark_使用Spark构建AWS数据湖时的一些问题以及如何处理这些问题
- springboot注释详解
- sap成本流怎么看_SAP FICO成本结算的流程到底是怎样的?
- 校招毁约污点公司名录.pdf
- mysql 内存性能优化
- Windows/Linux/Solaris 软中断处理机制
- EXCEL常见数据处理操作(一)
- 安装VS2010旗舰版时出现.Net framework4.0,安装失败
- 【RFC2818 基于 TLS 的 HTTP】(翻译)
- Pascal 过程与函数
- 3D坐标系、矩阵变换、视景体与裁剪
- 正则表达式(手机号前带区号)
- python全栈工程师 pdf_python全栈工程师项目开发实例实战入门教程百度云
- Docker-第一课
- linux漏洞知乎_linux系统怎么用
热门文章
- 为什么复制粘贴时html,关于javascript:为什么你应该停止复制和粘贴
- mysql scrapy 重复数据_mysql数据库如何处理重复数据?
- c#二叉树 取叶子节点个数_数据结构第四章:树与二叉树(二叉树的概念、性质、特殊二叉树)...
- 翻遍全网!这4个Python项目最良心!(含视频源码)
- 在python中、处理的一切都是对象_Python 3+ 一切都是对象
- invalid floating point operation什么意思_数据可视化有意思的小例子:Taylor Swift 歌词数据分析和可视化...
- 19-爬虫之scrapy框架大文件下载06
- element标签弹窗_如何在element plus中实现不同弹窗传值
- 笔记本安装ubuntu后触控板失灵
- 将一个简单远程调用的方式例子改为异步调用 -- 2