51NOD 最大子字段和问题(DP入门)
来源:互联网 发布:游戏源码 编辑:程序博客网 时间:2024/06/18 10:54
题目地址https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1049
题意:N个整数组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续子段和的最大值。当所给的整数均为负数时和为0。
例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。
思路:寻找和最大的字段时,当前记录的子段的和为负数时,就要以下一个点为起点重新找子段了。
#include <stdio.h>long long max(int n,int *a){ long long b=0,sum=0; for(int i=0;i<n;i++) { if(b>0)<span style="white-space:pre"></span> //只要于下一个相加不小于零,就加进去 { b+=a[i]; } else { b=a[i];<span style="white-space:pre"></span> //如果小于零了,那么就要以下一个点开始重新找子段 } if(b>sum) { sum=b;<span style="white-space:pre"></span>//sum保存最大子字段和 } } return sum;}int main(){ int a[50000],i,n; long long res; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } res=max(n,a); printf("%ld",res); return 0;}
1 0
- 51NOD 最大子字段和问题(DP入门)
- 51nod-dp入门-最大子矩阵和
- 51Nod--1051最大子矩阵和(DP入门)
- 51Nod 1051 最大子矩阵和(二维最大字段和dp)
- 51 nod 循环最大字段和 DP
- 51nod最大子段和问题
- 51nod-最大子段和问题
- 51NOD-最大子段和问题
- 51Nod 1050 循环数组最大字段和 ( DP
- [51nod 1051 最大子矩阵和]前缀和+dp
- 51nod 循环数组最大子段和 (dp)
- 51Nod 1049 最大子段和(分治/dp)
- 51nod 1051 最大子矩阵和 dp
- 51Nod 1049 最大子段和(简单DP)
- 51nod 1050 循环数组最大子段和 dp
- 【51Nod】1051 - 最大子矩阵的和(dp)
- 51nod 1049 最大子段和(分治 dp)
- 51nod 1051 最大子矩阵和【dp】
- Nginx服务器安装及配置文件详解
- java web 乱码
- C++类型别名
- 如何增加tomcat启动内存
- MFC error C3646: 未知重写说明符
- 51NOD 最大子字段和问题(DP入门)
- 关于VR的一些猜想
- 编写自己的WifiDog认证服务器
- awk认真的总结(入门)-AWK程序设计语言
- jsp中应用JavaBean
- Android取消EditText自动获取焦点默认行为
- python中decorator的用法及原理(一)
- jsp页面跳转传值(变量)
- WebAPI请求——js调用