C++课后习题训练记录Day157

1.练习项目 :

问题描述

给定 n 根木棒,第 i 根木棒的长度为 Li​。每次你可以选择任意一根木棒并将其切成两段,切完后两段的长度都必须为整数。请问,如果一共切 m 次,在所有的方案中,切完后木棒中最长的一根最短是多少?

输入格式

输入的第一行包含两个整数 n,m,用一个空格分隔。第二行包含 n 个正整数 L1,L2,...,Ln​,依次表示每根木棍的长度。

输出格式

输出一行包含一个整数表示答案。

2.选择课程

在蓝桥云课中选择题库,选择题号20136并开始练习。

3.开始练习

(1)源码 :

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const int N=3e5+10;

ll aN;

int n,m;

bool check(int mid)

{

ll res=0;

for(int i=1;i<=n;i++){

res=res+ai/mid+(ai%mid==0?0:1)-1;

}

return res<=m;

}

int main()

{

ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);

cin>>n>>m;

for(int i=1;i<=n;i++){

cin>>ai;

}

ll l=1,r=2e18;

while(l<=r){

ll mid=(l+r)/2;

if(check(mid))r=mid-1;

else l=mid+1;

}

cout<<l<<'\n';

return 0;

}

(2)检验结果

对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。

(3)练习心得:注意每段代码末尾的分号是否存在,如不存在则需即使补充;输入法 是否切换 为英语模式;语法是否错误。

相关推荐
2601_962885729 小时前
如何用 Python 自动识别股票的支撑位与压力位?
开发语言·python
爱吃奥利奥_wen9 小时前
面向对象三板斧:封装、继承、多态,到底在“装“什么、“承“什么、“变“什么?
开发语言·经验分享·c#
All for pursuit.9 小时前
【位运算-1】338.比特位计数
数据结构·c++·算法·leetcode
我可能是个假开发9 小时前
FTP Unicode 文件名导致 `550` 的问题分析与解决方案
java·开发语言·spring
小师兄吃牛肉10 小时前
C语言中的nullptr有必要吗
c语言·c++·算法
WL学习笔记10 小时前
日期类(C++)
开发语言·c++·日期类实现
谢亮_vipxieliang11 小时前
Go map与结构体的正确使用
开发语言·golang·哈希算法
H.莓飛11 小时前
【C++】命名空间、缺省参数、函数重载与引用
linux·开发语言·c++·visual studio
xxwl58511 小时前
数据结构知识点和代码实现总结(C语言实现)
c语言·开发语言·数据结构
汉克老师13 小时前
GESP2026年9月认证C++八级( 第一部分选择题(1~7题)精讲
c++·gesp·小学生·学c++编程