最大子段和 (含变形)【dp】
来源:互联网 发布:淘宝网店进货 编辑:程序博客网 时间:2024/05/22 04:29
最大子段和
给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。
比如两个串为:
abcicba
abdkscab
ab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。
Input
第1行:字符串A
第2行:字符串B
(A,B的长度 <= 1000)
Output
输出最长的子序列,如果有多个,随意输出1个。
Input示例
abcicba
abdkscab
Output示例
abca
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<cmath>#include<queue>#include<stack>#include<map>#include<vector>#include<set>#define CLR(a,b) memset((a),(b),sizeof(a))#define inf 0x3f3f3f3f#define mod 100009#define LL long long#define M 10000#define ll o<<1#define rr o<<1|1#define lson o<<1,l,mid#define rson o<<1|1,mid+1,rusing namespace std;int main(){ LL n; scanf("%lld",&n); int i,j;LL ans=0,sum=0; for(i=0;i<n;i++) { LL a; scanf("%lld",&a); sum+=a; if(sum<0) sum=0; ans=max(ans,sum); } printf("%lld\n",ans); return 0;}
1266: 最大子段和
时间限制: 1 秒 内存限制: 64 MB
提交: 448 解决: 130
提交 状态
题目描述
一个大小为n的数组a1到an(−10^4≤ai≤10^4)。请你找出一个连续子段,使子段长度为奇数,且子段和最大。
输入
第一行为T(1≤T≤5),代表数据组数。
之后每组数据,第一行为n(1≤n≤10^5),代表数组长度。
之后一行n个数,代表a1到an。
输出
每组数据输出一行,表示满足要求的子段和最大值
样例输入
1
4
1 2 3 4
样例输出
9
思路 :
代码
#include<cstdio>#include<cstring>#define M 100000+100#include<algorithm> using namespace std;int a[M];int dp[M];int main(){ int t; scanf("%d",&t); while(t--) { int n; memset(a,0,sizeof(a)); memset(dp,0,sizeof(dp)); scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); dp[0]=a[0];dp[1]=a[1]; int sum=max(dp[0],dp[1]); for(int i=2;i<n;i++) { dp[i] = max(dp[i-2]+a[i-1]+a[i],a[i]);//对于接下来的每个数字来说 其 i-2 的数字来说是 奇数,所以判断一下到底加不加就可以了 sum = max(dp[i],sum);// 不断记录 其中最大的和 } printf("%d\n",sum); } return 0;}
0 0
- 最大子段和 (含变形)【dp】
- FZU 2253 DP(最大子段和变形)
- 51Nod 1050 循环数组最大子段和(DP—最大子段和变形)
- 51Nod 1051 最大矩阵和(DP—最大子段和变形)
- poj2479 Maximum sum(最大子段和变形)
- vijos1570(最大子段和变形)
- 最大子段和及其变形小结
- 蓝桥杯 最大子阵(dp最大子段和)
- 最大子段和【DP】
- 最大子段和 (dp)
- 最大子立方和(动态规划求最大子段和三维变形)
- Maximum Sum 最大子矩阵和+dp+(最大连续子序列的变形)
- 最大子段和部分问题(DP)
- 51Nod 1049 最大子段和(分治/dp)
- 循环数组最大子段和(DP)
- 最大子段和问题(dp大法)
- 51nod 1049 最大子段和(基础dp)
- 51nod 最大子段和(动态规划DP)
- 《人民的名义》之陆毅的演技
- swift 3.0 数组赋值
- 杭电oj(Java版)—— 2602 Bone Collector—— 01背包问题
- 最大连续子序列 (dp)HDU 1231
- Box UVA
- 最大子段和 (含变形)【dp】
- DrawerLayout 点击穿透事件
- 换IP的是你,凭啥重启的却是我?(58沈剑)
- C#类方法的重写与覆盖
- 两个线程的交替打印
- 基于proteus的51单片机仿真实例二、关于proteus
- 周游世界
- CSS代码规范
- Spark Streaming流任务学习笔记