HDU 5805 NanoApe Loves Sequence [Ad Hoc]

来源:互联网 发布:java重写方法快捷键 编辑:程序博客网 时间:2024/06/03 16:20

http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=721&pid=1002从前往后记录,从后往前记录,和LeetCode一题蛮像

#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>#include <cstring>using namespace std;const int MAXN = 100000 + 9;int a[MAXN];int b[MAXN];int c[MAXN];void solve(){  memset(b, 0, sizeof(b));  memset(c, 0, sizeof(c));  int n;  scanf("%d", &n);  for (int i = 0; i < n; i++) {    scanf("%d", &a[i]);  }  int max1 = 0;  for (int i = 1; i < n; i++) {    max1 = max(max1, abs(a[i] - a[i - 1]));    b[i] = max1;   // cout << b[i];  } // cout << endl;  int max2 = 0;  for (int i = n - 2; i >= 0; i--) {    max2 = max(max2, abs(a[i + 1] - a[i]));    c[i] = max2;  //  cout << c[i];  } // cout << endl;  unsigned long long ans = c[1] + b[n - 2];  for (int i = 1; i < n - 1; i++) {    ans += max(abs(a[i + 1] - a[i - 1]), max(b[i - 1], c[i + 1]));  }  cout << ans << endl;}int main(){  //freopen("in", "r", stdin);  int t = 1;  scanf("%d", &t);  while (t--) {    solve();  }}
0 0
原创粉丝点击