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

相关推荐
2401_8676239813 小时前
如何设置用户默认表空间_ALTER USER DEFAULT TABLESPACE
jvm·数据库·python
ftpeak13 小时前
LangGraph Agent 开发指南(12~函数式 API)
人工智能·python·ai·langchain·langgraph
ChoSeitaku13 小时前
06_可变参数_递归_类和对象_封装
java·数据结构·算法
yivifu13 小时前
跟水印杠上了——顺便巩固Tkinter的GUI编程
python·opencv·tkinter·去水印
2301_8039346113 小时前
html标签怎样划分页面区域_section与div的区别【介绍】
jvm·数据库·python
-To be number.wan13 小时前
算法日记 | 动态规划(初级)
算法·动态规划
_深海凉_13 小时前
LeetCode热题100-二叉搜索树中第 K 小的元素
算法·leetcode·职场和发展
图码13 小时前
文本两端对齐算法详解:从LeetCode到实际应用
数据结构·图像处理·算法·leetcode·生成对抗网络·面试·职场和发展
知学致远13 小时前
Python基础语法_01-注释、输入输出、变量
python
liu****13 小时前
第16届国赛蓝桥杯大赛C/C++大学C组
c语言·数据结构·c++·算法·蓝桥杯