月度开销
  • 板块题目总版
  • 楼主Mike_Evans
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/8/28 08:36
  • 上次更新2024/8/28 10:59:17
查看原帖
月度开销
1364340
Mike_Evans楼主2024/8/28 08:36
#include<bits/stdc++.h>
using namespace std;
int n, m, a[100001];
long long  sum, kxmin, kxmax;
void hx(long long kxmin, long long kxmax) {
	if (kxmax - kxmin == 1) {
		cout << kxmax << endl;
		return;
	}
	int t = 0, ans = 0;
	long long mid = (kxmin + kxmax)>>1;
	for (int i = 1; i <= n; i++) {
		if (t < mid) {
			t += a[i];
			if (t > mid) {
				ans++;
				t = a[i];
			} else if (t == mid) {
				ans++;
				t = 0;
			}
			if (ans > m)break;
		}
	}
	ans++;
	if (ans > m) hx(mid, kxmax);
	else hx(kxmin, mid);
	return;
}
int main() {
	cin >> n >> m >> a[1];
	kxmin = a[1];
	sum = a[1];
	for (int i = 2; i <= n; i++) {
		cin >> a[i];
		sum += a[i];
		if (a[i] > kxmin)kxmin = a[i];
	}
	kxmax = kxmin * (n - m + 1);
	kxmin -= 1;
	hx(kxmin, kxmax);
	return 0;
}

农夫约翰是一个精明的会计师。他意识到自己可能没有足够的钱来维持农场的运转了。他计算出并记录下了接下来 N (1 ≤ N ≤ 100,000) 天里每天需要的开销。

约翰打算为连续的M (1 ≤ M ≤ N) 个财政周期创建预算案,他把一个财政周期命名为fajo月。每个fajo月包含一天或连续的多天,每天被恰好包含在一个fajo月里。

约翰的目标是合理安排每个fajo月包含的天数,使得开销最多的fajo月的开销尽可能少。

2024/8/28 08:36
加载中...