超快代码
2026-02-26 10:21:18
发布于:上海
0阅读
0回复
0点赞
废话不多说,直接上36ms的代码,这题主要还是
用二分的思想来做(记得带翻译软件),严禁抄袭,仅供参考
#include<bits/stdc++.h>
using namespace std;
long long n, m, a[300001], x;
bool check(int x) {
long long s = 0;
for (int i = 1; i <= m; i++)s += (a[i] + x - 1) / x;
if (s <= n)return true;
else return false;
}
long long l = 1, r, ans;
int main() {
ios::sync_with_stdio(0), cin.tie(0);
cin >> n >> m;
ans = n + 1;
for (int i = 1; i <= m; i++) {
cin >> a[i];
r = max(r, a[i]);
}
while (l <= r) {
int mid = l + (r - l) / 2;
if (!check(mid))l = mid + 1;
else {
ans = mid;
r = mid - 1;
}
}
cout << ans;
return 0;
}
看完代码如果觉得有用能给个赞吗?
这里空空如也



有帮助,赞一个