题目就不在这里描述了,相信大家都知道了,主要是状态机的模型。求出来就比较好写了。
这里附上代码:
#includeusing 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; }
主要是把状态模型写出来。



