码迷,mamicode.com
首页 > 其他好文 > 详细

codeforces C. Functions again

时间:2017-08-04 20:31:03      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:题意   pen   code   codeforce   dp2   vector   数列   cti   代码   

  题意:给定了一个公式,让你找到一对(l,r),求解出公式给定的F值。

  当时没有想到,我把(-1)^(i-l)看成(-1)^i,然后思路就完全错了。其实这道题是个简单的dp+最长连续子序列。

  O(n)求最长连续子序列代码

    ll maxx=0, sum=0, now=0;
    for (int i=1; i<n; i++) {    //数列1-n
        sum+=dp1[i];
        maxx=max(maxx, sum);
        if (sum<0)  sum=0;
    }

  其实我们可以发现,其实正负是交错的,那么我们只要用两个dp(正负相反)的数组来存,再求一次最长连续子序列就好了。

/*  gyt
       Live up to every day            */
#include <stdio.h>
#include <cstdio>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <vector>
#include <stack>
#include <cstring>3
#include <queue>
#include <set>
#include <string>
#include <map>
#include <time.h>
#define PI acos(-1)
using namespace std;
typedef long long ll;
typedef double db;
const int maxn = 1e5+10;
const ll maxm = 1e7;
const int mod = 1000000007;
const int INF = 1<<30;
const db eps = 1e-9;
const ll Max=1e19;
ll a[maxn], dp1[maxn], dp2[maxn];

void solve() {
    int n;  scanf("%d", &n);
    for (int i=1; i<=n; i++) {
        scanf("%lld", &a[i]);
    }
    memset(dp1, 0, sizeof(dp1));
    memset(dp2, 0, sizeof(dp2));
    int f=1;
    for (int i=1; i<=n-1; i++) {
        dp1[i]=abs(a[i]-a[i+1])*f;
        dp2[i]=abs(a[i]-a[i+1])*(-f);
        f = -f;
    }
    ll maxx=0, sum=0, now=0;
    for (int i=1; i<n; i++) {
        sum+=dp1[i];
        maxx=max(maxx, sum);
        if (sum<0)  sum=0;
    }
    sum=0;
    for (int i=1; i<n; i++) {
        sum+=dp2[i];
        maxx=max(maxx, sum);
        if (sum<0)  sum=0;
    }
    cout<<maxx<<endl;
}
int main() {
    int t=1;
    //freopen("in.txt", "r", stdin);
    //scanf("%d", &t);
    for (int T=1; T<=t; T++) {
        solve();
    }
}

 

codeforces C. Functions again

标签:题意   pen   code   codeforce   dp2   vector   数列   cti   代码   

原文地址:http://www.cnblogs.com/gggyt/p/7286882.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!