关注
int main()
{
int n, m, x, k;
cin >> n >> m >> x >> k;
vector<int> nums(n, 0);
for (int i = 0; i < n; i++)
cin >> nums[i];
int m_min = 50000;
for (auto its : nums)
m_min = min(its, m_min);
int m_max = m_min + m * k;
int l = 1;
int r = m_max;
while (l < r) {
int mid = (l + r + 1)/2;
vector<int> dp(n, 0);
int numm = 0;
bool b1 = true;
for (int i = 0; i < n; i++) {
int num = 0;
int r0 = i + x < n ? i + x : n-1;
for (int j = i - x>0 ? i - x : 0; j <= r0; j++) {
num += dp[j];
}
if (num * k + nums[i] >= mid) {
continue;
}
else {
int lest = mid - num * k - nums[i];
int num2 = lest / k;
if (lest % k != 0)
num2++;
if (num2 + numm > m) {
b1 = false;
break;
}
dp[r0] += num2;
numm += num2;
}
}
if (b1)
{
l = mid;
}
else
r = mid - 1;
}
cout << (l + r) / 2 << endl;
system("pause");
}
二分查找
查看原帖
6 2
相关推荐
03-30 08:26
厦门工学院 嵌入式软件工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届春招投递记录 #
16844次浏览 118人参与
# Vibe Coding 会干掉初级岗位吗? #
51703次浏览 328人参与
# 我的求职总结 #
486675次浏览 6870人参与
# 美团秋招笔试 #
218933次浏览 1196人参与
# 27届实习投递记录 #
85358次浏览 906人参与
# 实习生应该准时下班吗 #
360551次浏览 1762人参与
# 职场吐槽大会 #
361446次浏览 2308人参与
# 面试常问题系列 #
311135次浏览 4803人参与
# 面试中的破防瞬间 #
1268879次浏览 11141人参与
# 我是XXX,请攻击我最薄弱的地方 #
96113次浏览 642人参与
# 拼多多工作体验 #
62800次浏览 439人参与
# 机械人还在等华为开奖吗? #
342033次浏览 1655人参与
# 华为工作体验 #
332365次浏览 1439人参与
# 牛油的搬砖plog #
207622次浏览 1337人参与
# 什么专业适合考公 #
73485次浏览 476人参与
# AI Coding实战技巧 #
32078次浏览 400人参与
# 实习工作,你找得还顺利吗? #
597384次浏览 6758人参与
# 求职遇到的搞笑事件 #
192929次浏览 962人参与
# 运营每日一题 #
147702次浏览 981人参与
# 小厂实习有必要去吗 #
95216次浏览 453人参与
