788A
来源:互联网 发布:网络电玩游戏博客 编辑:程序博客网 时间:2024/06/08 05:14
题意:给一个公式,(1 ≤ l < r ≤ n),(1=<I<=n),和a数组,求f(l,r)的最大值
思路:令b[I] = | a[I]-a[I+1] | ,可以发现f(l,r)的最大值要么在 {b1,-b2,+b3,... ,(+ or -) bn-1},要么在{-b1,b2,-b3,b4,...,(- or +) bn-1 }中,两个序列中最大连续子序列和较大者为答案
#include<cstdio>#include<cstring>#include<cmath>#define ll long longusing namespace std;const int maxn = 1e5+10;int b[maxn],c[maxn];int main(){int n;while(scanf("%d",&n)!=EOF){int a,a1;scanf("%d",&a1);for(int i=1;i<n;i++){scanf("%d",&a);if(i%2==0){b[i]=abs(a-a1);c[i]=-b[i];}else{b[i]=-abs(a-a1);c[i]=-b[i];}a1=a;}ll Max1,Max2,sum1=0,sum2=0;Max1=Max2=-(1<<30);for(int i=1;i<n;i++){if(sum1<=0)sum1=b[i];elsesum1+=b[i];if(sum1>Max1)Max1=sum1;if(sum2<=0)sum2=c[i];elsesum2+=c[i];if(sum2>Max2)Max2=sum2;}ll ans=Max1>Max2?Max1:Max2;printf("%I64d\n",ans);}}
阅读全文
0 0
- 788A
- a
- a
- a
- a
- a
- a
- a
- a
- a
- a
- a
- a
- a
- A
- A*
- a
- A
- 【HTML/JS】Javascript定义类(class)的三种方法
- Ext Js入门第2篇-核心工具方法
- js导出excel
- 图像预处理|直方图均衡
- io流
- 788A
- 我与python约个会:24. 企业级开发基础5:面向对象特征(封装)
- 有道理
- PHP __set(),__get(),__isset(),__unset()四个方法的应用
- 智能一代云平台(二十八):对前后端分离和FastDFS的使用的再理解
- Oracle 查看表空间的大小及使用情况sql语句
- 【开发笔记】常用工具设置指定jdk的方法总结
- Swift--07函数使用
- Android中图片加载框架Glide解析3----深入探究Glide的缓存机制