题解:P16230 [蓝桥杯 2026 省 A] 综合应变指标
一个简单做法,在
设
这里再解释一下这个“属性”。对于一个区间,它对于答案的贡献无非两种,
于是可以设计DP式。设
答案是
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5+5 ;
int n , dp[N][5][2] , x ;
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin >> n ;
memset( dp , 0xcf , sizeof( dp ) ) ;//-inf
dp[0][0][0] = dp[0][0][1] = 0 ;
int x ;
for( int i = 1 ; i <= n ; i ++ )
{
cin >> x ;
for( int k = 1 ; k <= 4 ; k ++ )
{
dp[i][k][1] = max( { dp[i-1][k-1][0] , dp[i-1][k-1][1] , dp[i-1][k][1] } ) + x ;
dp[i][k][0] = max( { dp[i-1][k-1][0] , dp[i-1][k-1][1] , dp[i-1][k][0] } ) - x ;
}
}
cout << max( dp[n][4][0] , dp[n][4][1] ) ;
return 0;
}