题解
合唱队形
1 条题解
-
0
#include <bits/stdc++.h> using namespace std; int main(){ long long n; cin >> n; long long a[105] = {0}; for (int i=1;i<=n;i++){ cin >> a[i]; } long long dp1[105] = {0}, dp2[105] = {0}; for (int i=1;i<=n;i++){ for (int j=0;j<i;j++){ if (a[j] < a[i]){ dp1[i] = max (dp1[i], dp1[j]+1); } } } long long ma = -1; for (int i=n;i>=0;i--){ for (int j=n+1;j>i;j--){ if (a[j] < a[i]){ dp2[i] = max (dp2[i], dp2[j]+1); } } for (int j=1;j<=n;j++){ ma = max (ma, dp1[j]+dp2[j]-1); } } cout << n - ma; return 0; //完结撒花 }
- 1