蓝桥杯 算法提高 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,否则代码会直接判断加入新元素后的大小

相关推荐
天天爱吃肉82187 小时前
# 商用车多体动力学整车仿真学习笔记(开篇总览)
人工智能·笔记·python·功能测试·学习·汽车
Allen说改装7 小时前
2025 APAxpo佛山改装展的展出规模达到了多少平方米?
人工智能·python
皓月斯语7 小时前
B3849 [GESP样题 三级] 进制转换 题解
c++·算法·题解
中微极客7 小时前
剪枝与量化:让YOLO在边缘设备上高效部署
算法·yolo·剪枝
aqi007 小时前
15天学会AI应用开发(十四)搭建LangChain的开发环境
人工智能·python·大模型·ai编程·ai应用
想会飞的蒲公英8 小时前
词袋模型与 CountVectorizer:文本也可以做特征表
人工智能·python·机器学习
牢姐与蒯8 小时前
双指针算法
数据结构·算法
LadenKiller8 小时前
近期量化工具推荐,问题位置比功能清单更重要
人工智能·python