蓝桥杯 算法提高 ADV-1164 和谐宿舍 python AC

贪心,二分

同类型题:蓝桥杯 算法提高 ADV-1175 打包

python 复制代码
def judge(x):
    wood = 0
    max_val = 0
    ans_len = 0
    for i in ll:
        if i > x:
            return False
        elif max(max_val, i) * (ans_len + 1) <= x:
            max_val = max(max_val, i)
            ans_len += 1
        else:
            wood += 1
            max_val = i
            ans_len = 1
    if ans_len:
        wood += 1
    return wood <= m


n, m = map(int, input().split())
ll = list(map(int, input().split()))
l, r = 0, max(ll) * len(ll)
while l < r:
    mid = (l + r) // 2
    if judge(mid):
        r = mid
    else:
        l = mid + 1
print(l)

函数遍历中加入了一个剪枝,判断当单个画大于木板时直接返回false,否则代码会直接判断加入新元素后的大小

相关推荐
databook几秒前
异常值检测与处理方法总结
python·数据挖掘·数据分析
千里码aicood2 分钟前
面向智能助理的多轮医疗对话生成系统开发
python
MC皮蛋侠客5 分钟前
OPC UA 系列(一):标准全景与 Python 最小闭环——让第一条设备数据流动起来
开发语言·python·opcua
用户3721574261356 分钟前
使用 Python 提取 Word 文档中的表格数据
python
有味道的男人9 分钟前
得物详情 API|支持实时价格、成色、鉴别服务数据
windows·python·api
wordbaby13 分钟前
混合检索:两全其美的艺术
人工智能·算法
小溪学编程13 分钟前
Java BufferedReader 详解:从基础用法到性能优化
java·python·性能优化
彧azz28 分钟前
数据结构:关于图的学习
c语言·数据结构·笔记·学习·算法
2601_9623004728 分钟前
基于Python与Tkinter的ADB Monkey自动化测试脚本开发
python·adb·tkinter·android测试·gui自动化
热心网友俣先生32 分钟前
A题-药材的烘干问题-题意逐句翻译
算法·数学建模