[第1章 1.2e3] Max Sum

169 字
1 分钟
[第1章 1.2e3] Max Sum
//hdu1003最大字段和问题,以下为贪心解法,注意累计值大于历史最大值时更新左右边界
//也可以使用dp,先赋值为初始值,计算包括当前位置与之前的和,大于当前值则要前面的,否则左边界右移
//若大于历史最大值,更新边界,一定要注意区间不要带上产生最小值位置
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
void solve(ll ca){
ll n;
cin>>n;
vector<ll>a(n+2);
for(ll i=1;i<=n;i++)cin>>a[i];
ll sum=0;
ll l=1;
ll a1=1,a2=1;
ll ma=a[1];
ll mi=0;
for(ll r=1;r<=n;r++){
sum+=a[r];
ll cal=sum-mi;
if(cal>ma){
ma=cal;
a1=l;
a2=r;
}
if(sum<mi){
mi=sum;
l=r+1;
}
}
cout<<"Case "<<ca<<":"<<endl;
cout<<ma<<" "<<a1<<" "<<a2<<endl;
}
int main(){
ll t;
cin>>t;
for(ll i=1;i<=t;i++){
if(i!=1)cout<<endl;
solve(i);
}
return 0;
}

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
[第1章 1.2e3] Max Sum
https://hecloud.top/posts/12e3-max-sum/
作者
贺小云
发布于
2026-06-26
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
贺小云
一个热爱技术与折腾的博客,serverless起高楼,静态构建一键走,专注于CDN调优,2秒之内到德州。
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
碎碎念
站点统计
文章
46
分类
4
标签
0
总字数
23,903
运行时长
0
最后活动
0 天前
站点信息
构建平台
Netlify CI
博客版本
Firefly v6.16.5
文章许可
CC BY-NC-SA 4.0

当前页面没有目录