题解,不喜勿喷
2025-07-12 11:38:32
发布于:上海
2阅读
0回复
0点赞
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> a(n);
for (int i = 0; i < n; ++i) {
cin >> a[i];
}
vector<vector<long long>> dp(n, vector<long long>(n, 0));
for (int i = n - 1; i >= 0; --i) {
for (int j = i; j < n; ++j) {
if (i == j) {
dp[i][j] = a[i];
} else {
long long left = a[i] - dp[i + 1][j];
long long right = a[j] - dp[i][j - 1];
dp[i][j] = max(left, right);
}
}
}
cout << dp[0][n - 1] << endl;
return 0;
}
这里空空如也
有帮助,赞一个