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

相关推荐
GIOTTO情19 小时前
Infoseek舆情处置系统的技术实现与落地实践
python
叶小鸡19 小时前
小鸡玩算法-力扣HOT100-动态规划(上)
算法·leetcode·动态规划
new_dev19 小时前
Python实现Android自动化打包工具:加固、签名、多渠道一键完成
android·python·自动化
LuminousCPP19 小时前
数据结构 - 线性表第三篇:基于顺序表实现 C 语言通讯录(基础功能篇)
c语言·数据结构·经验分享·笔记·算法
_日拱一卒19 小时前
LeetCode:114二叉树展开为链表
java·开发语言·算法
天天进步201519 小时前
从零打造 Python 全栈项目:智能教学辅助系统
开发语言·人工智能·python
无小道19 小时前
Redis——哈希类型相关指令
redis·算法·哈希算法
凌波粒19 小时前
LeetCode--513.找树左下角的值(二叉树)
java·算法·leetcode
一个不知名程序员www19 小时前
算法学习入门---算法题DAY1
c++·算法
子琦啊19 小时前
构造函数、this指向和原型链机制
javascript·算法·贴图