第二题int maxSumAfterKOperations(vector<int>& nums, int k) {
int n = nums.size();
// dp[i][j]表示前i个元素做j次操作后的最大和
vector< vector<int> > dp(n + 1, vector<int>(k + 1, 0));
for (int i = 1; i <= n; i++) {
for (int j = 0; j <= k; j++) {
int max_sum = INT_MIN;
int current_sum = 0;
for (int x = 0; x <= min(j, i); x++) {
if (x > 0) {
current_sum = max(current_sum + nums[i - x], nums[i - x]);
}
max_sum = max(max_sum, current_sum + dp[i - x][j - x]);
}
dp[i][j] = max_sum;
}
}
return dp[n][k];
}