C. Functions again-最长连续子序列
来源:互联网 发布:开票软件金税盘未响应 编辑:程序博客网 时间:2024/06/06 02:49
第一道连续子序列的题。。
给定一个数组,设定一种函数,
可以在一个 区间r,l内,对这个区间内所有该数组中的数的差值进行,加减加减操作。累加。
问最大的。由于开始r不同,所以可能是 减加减加。两种情况
求最长连续子序列
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;//typedef long long ll;const int maxn=100005;int main(){ long long a[maxn]; long long sum[maxn]; long long sum1[maxn]; long long sum2[maxn]; int n; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%lld",&a[i]); } int j=1; for(int i=2;i<=n;i++) { sum[j++]=abs(a[i]-a[i-1]); } //for(int i=1;i<=n-1;i++) //printf(" %d ",sum[i]); for(int i=1;i<=n-1;i++) { if(i%2) {sum1[i]=sum[i]; sum2[i]=-sum[i]; } else {sum1[i]=-sum[i]; sum2[i]=sum[i]; } } n--; long long all=0; long long maxsize=-0x3f3f3f3f; for(int i=1;i<=n;i++) { if(all+sum2[i]<sum2[i]) all=sum2[i]; else all+=sum2[i]; if(maxsize<all) maxsize=all; } all=0; for(int i=1;i<=n;i++) { if(all+sum1[i]<sum1[i]) all=sum1[i]; else all+=sum1[i]; if(maxsize<all) maxsize=all; } printf("%lld\n",maxsize); return 0;}
0 0
- C. Functions again-最长连续子序列
- codeforces 788 A. Functions again(最大连续子序列和)
- 连续最长子序列
- 最长连续子序列
- 最长连续子序列
- 最长连续子序列
- fjnu 最长连续子序列
- 最长连续子序列 DP
- 最长连续公共子序列
- 最长连续子序列和
- 最长连续公共子序列
- 最长上升连续子序列
- lintcode-最长连续子序列
- FZU2216 最长连续子序列
- 最长公共子序列(连续)
- 最长连续递增子序列
- 最长上升连续子序列
- 最长连续上升子序列
- 337. House Robber III
- 单链表的逆转
- |poj 1961|KMP|Period
- Hibernate 学习教程
- 十五、Mysql 分组查询
- C. Functions again-最长连续子序列
- 浏览器拦截跨域请求处理方法(同源策略不允许读取服务器远程资源)
- [数据库学习SQLSERVER] 学习笔记
- 八、分组函数/聚合函数/双行处理函数
- 关于zxing扫码界面的优化
- 148. Sort List
- 521. Longest Uncommon Subsequence I
- 利用Python解析Excel文件
- 如何在个人博客中插入Jsbin或者jsfiddle代码