前言
求双子序列最大和的模板
一、题目描述
给定一个长度为n的整数序列,要求从中选出两个连续子序列,使得这两个连续子序列的序列和之和最大,最终只需输出最大和。一个连续子序列的和为该子序列中所有数之和。每个连续子序列的最小长度为1,并且两个连续子序列之间至少间隔一个数。
1.输入格式
第一行是一个整数表示n。
第二行是n个整数表示整数序列。
2.输出格式
一个数,两个连续子序列的序列和之和。
代码
#include<bits/stdc++.h>
using namespace std;
int n;
long long ans,sum;
long long x[1000010];//数列的数
long long lmax[1000010];//位于某数左边的序列和最大的子序列
long long rmax[1000010];//位于某数右边的序列和最大的子序列
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>x[i];
}
lmax[1]=x[1];
for(int i=2;i<=n;i++){
lmax[i]=max(lmax[i-1]+x[i],x[i]);
}
for(int i=2;i<=n;i++)