关注
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
相关推荐
牛客热帖
正在热议
# 秋招感动瞬间 #
3839次浏览 62人参与
# 你都收到了哪些公司的感谢信? #
3801900次浏览 32777人参与
# 被同事甩锅了怎么办 #
10850次浏览 75人参与
# 我的求职思考 #
4478327次浏览 59336人参与
# 职场吐槽大会 #
100495次浏览 821人参与
# 分享一个让你热爱工作的瞬间 #
7287次浏览 64人参与
# 如果实习可以转正,你会不会放弃秋招 #
235695次浏览 3032人参与
# 上班到公司第一件事做什么? #
20780次浏览 217人参与
# 哪个瞬间让你对大厂祛魅了? #
165069次浏览 1023人参与
# 工作后会跟朋友渐行渐远吗 #
13136次浏览 105人参与
# 技术转行的心路历程 #
34944次浏览 590人参与
# 牛客十周岁生日快乐 #
68897次浏览 1031人参与
# 如何一边实习一边秋招 #
1059311次浏览 13176人参与
# 制造业的秋招小结 #
62767次浏览 1367人参与
# 字节跳动工作体验 #
248485次浏览 3251人参与
# 工作两年想退休了 #
66931次浏览 803人参与
# 打杂的实习你会去吗? #
92044次浏览 824人参与
# 材料进Fab厂真的劝退吗? #
24255次浏览 130人参与
# 没有实习经历,还有机会进大厂吗 #
898247次浏览 14880人参与
# 你想留在一线还是回老家? #
9172次浏览 172人参与