P1115最大子段和
2024-08-26 15:17:45
题目:https://www.luogu.org/problemnew/show/P1115
很简明的一道题;
这里用了递归分治,然而似乎还有更简单的做法(贪心)。
代码如下:
#include<iostream>
#include<cstdio>
using namespace std;
int inf=;
int n,a[];
long long cl(int l,int r)
{
if(l==r)return a[l];
long long ret1=-inf,ret2=-inf;
int mid=((l+r)>>);
long long sum=;
for(int i=mid;i>=l;i--)
{
sum+=a[i];
ret1=max(ret1,sum);
}
sum=;
for(int i=mid+;i<=r;i++)
{
sum+=a[i];
ret2=max(ret2,sum);
}
return max(cl(l,mid),max(cl(mid+,r),ret1+ret2));
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
printf("%lld",cl(,n));
return ;
}
贪心(转):
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n[],p,ans[]={};
int sum=-;//|x|<=10000 QWQ
cin>>p;
for(int i=;i<=p;i++)
{
cin>>n[i];//输入
ans[i]=max(ans[i-]+n[i],n[i]);//DP
sum=max(sum,ans[i]);//取最大值也同时进行,节约时间
}
cout<<sum;//直接输出
return ;
}
贪心做法
最新文章
- C#中将DataTable导出为HTML的方法
- iOS 10对隐私权限的管理(必须要改否则会crash)
- 安装.NET FRAMEWORK 4.5安装进度条回滚之后发生严重错误 代码0x80070643
- MultiThread
- 网络之Ip地址
- pythomn
- slider jq小插件
- iOS菜鸟之苹果开发者账号的注册
- Oracle开始从Java运行时中移除JAR包
- nginx配置限制同一个ip的访问频率
- Oracle Sql优化之lead,lag分析函数
- IOS开发中UIFont字体设置
- XFTP连接主机文件名显示中文乱码且不能下载的解决方法
- html checkbox样式美化
- python抓取数据构建词云
- python 使用pip安装使用国内镜像加速下载安装包的方法
- 软件加密工具-Virbox 开发者工具盒
- 20155228 2016-2017-2 《Java程序设计》第9周学习总结
- C++ Curiously Recurring Template Prattern(CRTP)例程
- 【转载】COM 组件设计与应用(十一)—— IDispatch 及双接口的调用