最大子串和
来源:互联网 发布:留学生回国工作 知乎 编辑:程序博客网 时间:2024/05/21 17:08
给定一整型数列{a1,a2...,an},找出连续非空子串{ax,ax+1,...,ay},使得该子序列的和最大,其中,1<=x<=y<=n。
输入
第一行是一个整数N(N<=10)表示测试数据的组数)
每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的一行里有n个整数I(-100=<I<=100),表示数列中的所有元素。(0<n<=1000000)输出
对于每组测试数据输出和最大的连续子串的和。
样例输入
151 2 -1 3 -2样例输出
5该题求最大子串,可以把它分成n个子串然后求每一个子串的和再找出最大值。因为当前的状态与以前和以后的状态都无关,因此可以用dp。
把计算的每一个子串的结果保存在数组中,然后找最大值就行了。
#include<iostream>
#include<cstring>using namespace std;int a[1000010];int dp[1000010];int Dp(int n){ int i,j; int max=-10000; memset(dp,0,sizeof(dp)); for(i=0;i<n;i++) { for(j=0;j<=i;j++) { dp[i]+=a[j]; } if(max<dp[i]) max=dp[i]; } return max;}int main(){ int m,i; int n; cin>>m; while(m--){ cin>>n; for(i=0;i<n;i++) cin>>a[i]; cout<<Dp(n)<<endl; } return 0;}
0 0
- 最大子串和
- 最大和子串
- 子串最大和
- 最大子串和
- 最大子串和
- 最大和子串
- 最大子串和
- 最大子串和
- 最大子串和
- 最大子串和
- 最大子串和
- 最大子串和
- 最大子串和
- 最大子串和
- 最大子串和
- 最大子串和
- 最大子串和
- 最大连续子串和
- mysql 创建一个用户分配一个数据库权限
- java学习日记_67:正则表达式
- 严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderLis
- Part 88 - Unobtrusive validation in asp.net mvc
- vi编辑器工作模式及常用操作命令介绍
- 最大子串和
- 前端面试之Ajax和Json
- Part 89 - Remote validation in asp.net mvc
- 第十一周 OJ 牛顿迭代法求根
- 第十一周OJ——趣味取小数
- 宏实现一个数奇数位和偶数位的交换
- Part 90 - Remote validation in mvc when javascript is disabled
- Java中的IO整理
- java程序员的日常——经验贴(纯干货)