孙悟空吃蟠桃 - 华为OD统一考试(C卷)

package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
	"strconv"
	"strings"
)

func main() {
	in := bufio.NewScanner(os.Stdin)
	in.Scan()
	s := strings.Split(in.Text(), " ")
	in.Scan()
	H, _ := strconv.Atoi(in.Text())

	a := make([]int, len(s))
	for i, str := range s {
		a[i], _ = strconv.Atoi(str)
	}

	N := len(a)

	//枚举K的值
	sort.Ints(a)
	k := sort.Search(a[N-1]+1, func(k int) bool {
		count := 0
		for _, num := range a {
			count += (num + k - 1) / k
		}
		return count <= H
	})
	if k == a[N-1]+1 {
		fmt.Println(0)
		return
	}
	fmt.Println(k)
}

func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}

全部评论
二分查找K的值, 在[0,max(a[])+1)中
点赞
送花
回复
分享
发布于 05-17 17:45 广东

相关推荐

头像
05-13 21:44
已编辑
算法工程师
1.&nbsp;如何确保函数在&nbsp;`main`&nbsp;函数之前执行?2.&nbsp;为什么在C++中析构函数必须是虚函数?3.&nbsp;为什么默认的析构函数不是虚函数?4.&nbsp;C++中析构函数的作用是什么?5.&nbsp;为什么析构函数可以是虚函数而构造函数不能是虚函数?6.&nbsp;C++中静态函数和虚函数有何区别?7.&nbsp;函数的默认参数在C++中是如何实现的?8.&nbsp;什么是函数占位参数?9.&nbsp;函数重载的满足条件是什么?有哪些注意事项?10.&nbsp;虚函数表是如何实现多态的?其原理和作用是什么?11.&nbsp;C语言中的函数调用是如何进行的?12.&nbsp;封装、继承和多态的概念分别是什么?13.&nbsp;什么是深拷贝和浅拷贝?14.&nbsp;什么是友元?15.&nbsp;结构体和类在C++中有什么区别?默认的访问权限是不同的?16.&nbsp;构造函数和析构函数的作用是什么?17.&nbsp;CPU、MPU、MCU、SOC、SPOC的区别是什么?18.&nbsp;什么是交叉编译?为什么需要交叉编译?19.&nbsp;基于RAM和基于ROM的嵌入式运行方式有什么区别?20.&nbsp;哈弗结构和冯诺依曼结构分别是什么?21.&nbsp;ARM流水线技术是什么?22.&nbsp;ARM有多少32位寄存器?23.&nbsp;ARM指令集分为几类?24.&nbsp;ARM处理器有几种工作状态?25.&nbsp;在ARM体系中函数调用时参数是如何传递的?26.&nbsp;什么是锁相环?27.&nbsp;中断和异常有何区别?28.&nbsp;中断和DMA有什么区别?29.&nbsp;中断的响应执行流程是什么?30.&nbsp;中断和轮询的区别是什么?31.&nbsp;如何统计一个整数的二进制表示中1的个数?32.&nbsp;如何在不使用第三个变量的情况下交换两个变量的值?33.&nbsp;给定一个整型变量a,如何设置a的第3位?如何清除a的第3位?34.&nbsp;什么是虚函数?如何实现多态?35.&nbsp;什么是纯虚函数?36.&nbsp;在嵌入式系统中,如何确保函数在&nbsp;`main`&nbsp;函数之前执行?37.&nbsp;为什么C++中析构函数必须是虚函数?38.&nbsp;解释C++中析构函数的作用。39.&nbsp;什么是函数占位参数?它有什么作用?40.&nbsp;什么是ARM体系结构中的CPU、MPU、MCU、SOC和SPOC?答案整理到面经中&nbsp;&nbsp;c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看39道真题和解析
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务