【题目链接】:http://codeforces.com/contest/789/problem/C

【题意】



看式子。

【题解】



考虑最后的答案区间;

如果那个区间是从奇数位置的数字开始的;

那么奇数位上的|a[i+1]-a[i]|的系数(-1)^(i-l)就为1否则为-1

如果那个区间是从偶数位置的数字开始的;

那么偶数位….就为-1;

按照这个规则我们处理出b[i]=|a[i+1]-a[i]|

然后分两类处理

一种是偶数位的b[i]为正,奇数位的为负;

另一种是奇数位。。。负。。。。正

然后做最大连续子序列就好了;

这两种情况对应了起点是偶数和奇数的情况;

因为偶数的话,起点肯定是偶数->因为偶数是正的,奇数是负的你肯定一开始先选个正数啊

奇数的话。。起点。。肯定。。



【完整代码】

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define lson l,m,rt<<1
  4. #define rson m+1,r,rt<<1|1
  5. #define LL long long
  6. #define rep1(i,a,b) for (int i = a;i <= b;i++)
  7. #define rep2(i,a,b) for (int i = a;i >= b;i--)
  8. #define mp make_pair
  9. #define pb push_back
  10. #define fi first
  11. #define se second
  12. #define rei(x) scanf("%d",&x)
  13. #define rel(x) scanf("%lld",&x)
  14. #define ref(x) scanf("%lf",&x)
  15. typedef pair<int, int> pii;
  16. typedef pair<LL, LL> pll;
  17. const int dx[9] = { 0,1,-1,0,0,-1,-1,1,1 };
  18. const int dy[9] = { 0,0,0,-1,1,-1,1,-1,1 };
  19. const double pi = acos(-1.0);
  20. const int N = 1e5+100;
  21. int n;
  22. LL a[N],b[N],ans = 0;
  23. LL gao()
  24. {
  25. LL ret = 0,ma = 0;
  26. rep1(i, 1, n)
  27. {
  28. if (ret < 0)
  29. ret = b[i];
  30. else
  31. ret = ret + b[i];
  32. ma = max(ma, ret);
  33. }
  34. return ma;
  35. }
  36. int main()
  37. {
  38. //freopen("F:\\rush.txt", "r", stdin);
  39. rei(n);
  40. rep1(i, 1, n)
  41. rel(a[i]);
  42. rep1(i, 1, n - 1)
  43. {
  44. b[i] = a[i + 1] - a[i];
  45. if (b[i] < 0) b[i] = -b[i];
  46. if ((i % 2) == 0)
  47. b[i] = -b[i];
  48. }
  49. n--,ans = max(ans, gao());
  50. rep1(i, 1, n)
  51. b[i] = -b[i];
  52. ans = max(ans, gao());
  53. cout << ans << endl;
  54. //printf("\n%.2lf sec \n", (double)clock() / CLOCKS_PER_SEC);
  55. return 0;
  56. }

【codeforces 789C】Functions again的更多相关文章

  1. 【codeforces 415D】Mashmokh and ACM(普通dp)

    [codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...

  2. 【codeforces 757E】Bash Plays with Functions

    [题目链接]:http://codeforces.com/problemset/problem/757/E [题意] 给你q个询问; 每个询问包含r和n; 让你输出f[r][n]; 这里f[0][n] ...

  3. 【codeforces 604D】Moodular Arithmetic

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  4. 【codeforces 707E】Garlands

    [题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q ...

  5. 【codeforces 707C】Pythagorean Triples

    [题目链接]:http://codeforces.com/contest/707/problem/C [题意] 给你一个数字n; 问你这个数字是不是某个三角形的一条边; 如果是让你输出另外两条边的大小 ...

  6. 【codeforces 709D】Recover the String

    [题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出 ...

  7. 【codeforces 709B】Checkpoints

    [题目链接]:http://codeforces.com/contest/709/problem/B [题意] 让你从起点开始走过n-1个点(至少n-1个) 问你最少走多远; [题解] 肯定不多走啊; ...

  8. 【codeforces 709C】Letters Cyclic Shift

    [题目链接]:http://codeforces.com/contest/709/problem/C [题意] 让你改变一个字符串的子集(连续的一段); ->这一段的每个字符的字母都变成之前的一 ...

  9. 【Codeforces 429D】 Tricky Function

    [题目链接] http://codeforces.com/problemset/problem/429/D [算法] 令Si = A1 + A2 + ... + Ai(A的前缀和) 则g(i,j) = ...

随机推荐

  1. java线程——详解Callable、Future和FutureTask

    回顾: 接上篇博客 java线程--三种创建线程的方式,这篇博客主要介绍第三种方式Callable和Future.比较继承Thread类和实现Runnable接口,接口更加灵活,使用更广泛.但这两种方 ...

  2. linux删除svn版本号库

    当使用了svn版本号控制系统后每一个文件夹下都会有一个.svn文件夹存在,开发完当交付产品或者上传到server时一般要把这些文件夹删除.事实上在linux删除这些文件夹是非常easy的,命令例如以下 ...

  3. android开发设计辅助工具整理

    1.Button设计工具button设计

  4. unmapping error

    否则,会映射一个Getch的器件,就会报unmapping 的error

  5. php课程 8-29 gd库能够画哪些东西

    php课程 8-29 gd库能够画哪些东西 一.总结 一句话总结:文字,点,线,圆,弧线,矩形,各种形状都是可以的,和html5中的canva能画的东西很像,使用也很像,参数怎么记呢,参数完全不用记, ...

  6. jquery常用方法总结(转)

    取值与赋值操作 $("#ID").val(); //取value值 $("#ID").val("xxx"); //赋值 $("#I ...

  7. Spring Boot+Mybatis+Pagehelper分页

    Spring Boot 集成MyBatis和Pagehelper分页插件 mybatis-spring-boot-starter依赖树如下: pom配置 <project xmlns=" ...

  8. phoenixframe平台连接socketserver,并接收返回值的演示样例

    package org.phoenix.cases.webservice; import java.util.LinkedList; import org.phoenix.action.WebElem ...

  9. IIS最大并发连接数 = 队列长度 + IIS最大并发工作线程数

    深入理解IIS的多线程工作机制   首先让我们来看看IIS里面的这2个数字:最大并发连接数,队列长度.先说这2个数字在哪里看. 最大并发连接数:在IIS中选中一个网站,右键网站名称,在右键菜单中找到并 ...

  10. java生成6位随机数

    生成6位随机数(不会是5位或者7位,仅只有6位): System.out.println((int)((Math.random()*9+1)*100000)); 同理,生成5位随机数: System. ...