洛谷P1182 数列分段 Section II
洛谷P1182 数列分段Section II
P1182 数列分段Section II
数列分段 Section II
题目描述
对于给定的一个长度为
关于最大值最小:
例如一数列
将其如下分段:
第一段和为
将其如下分段:
第一段和为
并且无论如何分段,最大值不会小于
所以可以得到要将数列
输入格式
第
第
输出格式
一个正整数,即每段和最大值最小为多少。
样例 #1
样例输入 #1
5 3
4 2 4 5 1
样例输出 #1
6
提示
对于
对于
对于
题解
#include<cstdio>
#include<algorithm>
using namespace std;
int a[100100],n,m;
bool check(int x)
{
int sum = 0, cnt = 1;
for (int i=1; i<=n; ++i)
{
sum += a[i];
if (sum>x)
{
cnt++;
sum = a[i];
if (cnt>m) return false ;
}
}
return true ;
}
int main()
{
int l = 0, r = 0, ans;
scanf("%d%d",&n,&m);
for (int i=1; i<=n; ++i)
{
scanf("%d",&a[i]);
r += a[i];
l = max(l,a[i]);
}
while (l<=r)
{
int mid = (l+r)>>1;
if (check(mid))
{
ans = mid;
r = mid-1;
}
else l = mid+1;
}
printf("%d",ans);
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战