51nod 1049 最大子段和(基础dp)
来源:互联网 发布:美国网络大学 编辑:程序博客网 时间:2024/06/06 07:20
假设sum[i]表示以第i个数字为结尾的最大子段和,则sum[i]=max(sum[i-1]+A[i],A[i]),因为子段是连续的。。由状态转移方程可以知道,只有在sum[i-1]<0的情况下,sum[i]=A[i],否则,sum[i]=sum[i-1]+A[i],所以可以边输入边处理,一层循环搞定
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long ll;const int MAXN = 50010;ll A[MAXN];ll sum[MAXN];int main(){ //freopen("in","r",stdin); int n; ll res; scanf("%d",&n); memset(sum,0,sizeof(sum)); for(int i = 1; i <= n; ++i) scanf("%lld",&A[i]); res = 0; for(int i = 1; i <= n; ++i) { sum[i] = max(sum[i-1]+A[i],A[i]); if(sum[i] > res) res = sum[i]; } printf("%lld\n",res); return 0;}
0 0
- 51nod 1049 最大子段和(基础dp)
- 51Nod 1049 最大子段和(分治/dp)
- 51Nod 1049 最大子段和(简单DP)
- 51nod 1049 最大子段和(分治 dp)
- 51Nod 1049 最大子段和 (DP
- 51Nod-1049 最大子段和【DP】
- 51Nod 1049 最大子段和【简单dp】
- 51nod 1049最大子段和(dp)
- 51nod 最大子段和(动态规划DP)
- 51 nod 1052 最大M子段和(DP)
- 【dp基础课程】矩阵取数问题+最大子段和+最长公共子序列(LCS)【51nod】
- 51nod 1049 最大子段和
- 51Nod 1049 最大子段和
- 51nod:1049 最大子段和
- 51Nod--1049最大子段和
- 51nod 1049 最大子段和
- 51nod 1049 最大子段和
- 51nod 1049 最大子段和
- X86常见寄存器汇总
- Spring Jedis Pool 常用的连接参数说明
- windows下控制台连接redis
- arcgis for javascript 鼠标移到对象上面则置亮并弹出气泡
- 华为ensp中虚拟设备和真实网络中设备互通
- 51nod 1049 最大子段和(基础dp)
- 一、Spring Cloud
- HBase+ZooKeeper+Hadoop2.6.0的ResourceManager HA集群高可用配置
- ionic2 cordova插件、第三方JS库引入
- 黑莓手机导入通讯录
- npm ERR! phantomjs
- elasticsearch 查询删除文档
- int main (int argc ,char **argv)解析:::
- Android support包v8及以上