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

相关推荐
爱喝雪碧的可乐12 小时前
MATLAB
开发语言·算法·matlab
叼烟扛炮13 小时前
Linux 学习笔记(六十):单线程的逆袭——epoll 高并发服务器实战
linux·服务器·网络·笔记·学习·算法
starrysky81013 小时前
zipfile 中文乱码修复:把已知 GBK 旧 ZIP 解压到正确中文目录
python
careathers13 小时前
【数据结构】基于比较的排序算法 - 交换排序
数据结构·算法·排序算法
用户912940468484213 小时前
Codex 从零到能交付(09):让 Codex 写有用的测试,而不是只测成功路径
python
2601_9679873713 小时前
Debian如何配置Python调试工具
python·debian·pdb·调试工具·ipdb
MoRay14 小时前
放弃云端 Computer Use,我用 Python 手搓了一个带“物理防呆”的本地 GUI Agent 底座
python·github
Rabitebla14 小时前
【Linux操作系统】进程篇(十一):进程程序替换——从底层原理到 exec 函数族
linux·服务器·c++·笔记·学习·算法
tellmewhoisi15 小时前
深度学习0:数学知识:正态分布1
人工智能·深度学习·算法
-梅15 小时前
算法(1) 动态规划
算法·动态规划