题目就不在这里描述了,相信大家都知道了,主要是状态机的模型。求出来就比较好写了。
这里附上代码:
#include<iostream>
using namespace std;
const int N = 100005;
const int inf = -0x3f3f3f;
long long a[N],f[N][3];
int main(){
int n;
cin >> n;
for( int i = 1; i <= n; i ++)
cin >> a[i];
f[0][2] = 0,f[0][1]=f[0][0]=inf;
for(int i = 1; i <= n; i ++)
{
f[i][0] = max(f[i-1][0],f[i-1][2]-a[i]);
f[i][1] = f[i-1][0]+a[i];
f[i][2] = max(f[i-1][1],f[i-1][2]);
}
int ans = 0;
ans = max(f[n][1],f[n][2]);
cout << ans;
return 0;
}
主要是把状态模型写出来。