1 条题解
-
0
#include <bits/stdc++.h> using namespace std; const int maxn = 5005; int dp[maxn][maxn][2], n, c[maxn]; int main() { cin >> n; for (int i = 1; i <= n; i++) cin >> c[i]; for (int l = 1; l <= n; l++) { for (int i = 1; i+l-1 <= n; i++) { int j = i+l-1; if (l == 1) dp[i][j][0] = dp[i][j][1] = 0; else { dp[i][j][0] = min( dp[i+1][j][0] + (c[i] != c[i+1]) , dp[i+1][j][1] + (c[i] != c[j]) ); dp[i][j][1] = min( dp[i][j-1][0] + (c[i] != c[j]) , dp[i][j-1][1] + (c[j-1] != c[j]) ); } } } cout << min(dp[1][n][0], dp[1][n][1]) << endl; return 0; }
- 1
信息
- ID
- 14
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 7
- 已通过
- 2
- 上传者