#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e5 + 10;
ll n, m, a[N];
// 检查在每个成员最多分到 mid 只猫猫的情况下,是否可以将所有猫猫分完
bool check(ll mid) {
ll sum = 0;
for (int i = 1; i <= m; i++) {
sum += (a[i] + mid - 1) / mid; // 计算每种花色需要的成员数
}
return sum <= n; // 判断是否可以在 n 个成员内分完
}
int main() {
// 读取成员数和猫猫的花色种数
cin >> n >> m;
ll L = 1, R = 0;
// 读取每种花色的猫猫数量,并找到最大值
for (int i = 1; i <= m; i++) {
cin >> a[i];
R = max(R, a[i]);
}
ll ans = R;
// 二分查找确定最小的不满度
while (L <= R) {
ll mid = (L + R) / 2;
if (check(mid)) {
ans = mid; // 更新答案
R = mid - 1; // 尝试更小的最大值
} else {
L = mid + 1; // 尝试更大的最大值
}
}
// 输出最小的不满度
cout << ans;
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
2022-09-30 TZOJ 3692: 紧急援救 最短路/dijstra