80pts #4WA 的看这里
查看原帖
80pts #4WA 的看这里
399493
Smiog楼主2023/7/20 15:17

你的代码:

...
for (int i = 0; i <= n; i++) 
	cin >> a[i];
int l = 1, r = 1e9;
while (l <= r)
...

不妨试试改成

...
int l = 1;
for (int i = 0; i <= n; i++) 
	cin >> a[i];
	l = max(l, a[i]);
int r = 1e9;
while (l <= r)
...

因为你二分的最大和不仅要使得段数 <m <m ,

还要满足答案至少比数列中的最大值大。

比如我自己造的样例::

2 2
2 2

应输出 22 !

但因为分段是一数一段 ,

所以你的屎山会输出 ll 的初始最小值 (1)(1) 。

2023/7/20 15:17
加载中...