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

相关推荐
郑州光合科技余经理17 小时前
代驾系统架构拆解:订单链路、权限组织与私有化源码交付
开发语言·后端·算法·架构·系统架构·uni-app·php
码哥DFS20 小时前
二叉树的直径
开发语言·javascript·算法
paopaokaka_luck21 小时前
基于springboot3+vue3的企业考勤管理系统(部门树递归、Echarts图形化分析)
开发语言·spring boot·学习·echarts·mybatis·需求分析·代码规范
梦雨生生1 天前
java开发工具(学习第一天)
java·开发语言·学习
啊啊啊啊啊!!!!1 天前
【c++】stack和queue的接口使用以及底层实现
开发语言·c++
松仔log1 天前
Java中级——组合和继承
android·java·开发语言
(Charon)1 天前
【C++】锁与原子操作(四):自旋锁的完整实现与性能优化
c语言·开发语言·c++
雨田言炎1 天前
五、Qt控件使用说明大全
开发语言·qt
ShineWinsu1 天前
对于Linux:五种IO模型以及非阻塞IO的详细解析
linux·c++·面试·io·阻塞·非阻塞·fcntl
bu_shuo1 天前
MATLAB中的meshgrid和ndgrid
开发语言·matlab