合唱队形
有一个跟这个很像的题是 CF739C,有兴趣的可以去做一做。
在这里定义
此时考虑状态转移方程,即
code
#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define lx first
#define ly second
const int maxn=1e2+10;
int n,a[maxn];
int f[maxn],ans=INT_MAX;
signed main(){
// freopen("T2.in","r",stdin);
// freopen("T2.out","w",stdout);
cin >> n;for(int i=1;i<=n;++i)cin >> a[i];
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j)f[j]=1;
for(int j=1;j<=i;++j){
for(int k=1;k<j;++k){
if(a[k]<a[j])f[j]=max(f[j],f[k]+1);
}
}
int cnt1=f[i];
for(int j=1;j<=n;++j)f[j]=1;
for(int j=n;j>=i;--j){
for(int k=n;k>j;--k){
if(a[k]<a[j])f[j]=max(f[j],f[k]+1);
}
}
cnt1+=f[i]-1;ans=min(ans,n-cnt1);
}
cout << ans << endl;
return 0;
}