Codeforces Round #276 (Div. 1) D. Kindergarten(DP+思维)

题目链接
在这里插入图片描述

#include<bits/stdc++.h> 
#define ll long long
using namespace std;
const int maxn=1e6+1; 
ll dp[maxn][2],a[maxn];
int n;
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;++i) scanf("%lld",&a[i]);
	dp[1][0]=dp[1][1]=0;
	for(int i=2;i<=n;++i)
	{
		if(a[i]-a[i-1]>0) 
		dp[i][0]=max(dp[i-1][0]+a[i]-a[i-1],dp[i-1][1]),
		dp[i][1]=max(dp[i-1][1],dp[i-1][0]);
		else dp[i][0]=max(dp[i-1][1],dp[i-1][0]),
		dp[i][1]=max(dp[i-1][1]+a[i-1]-a[i],dp[i-1][0]);
	}
	printf("%lld\n",max(dp[n][0],dp[n][1]));
 } 
发布了328 篇原创文章 · 获赞 1 · 访问量 9100

猜你喜欢

转载自blog.csdn.net/qq_42479630/article/details/105209590