482. 合唱队形
作者:互联网
正着求一遍\(LIS\),反着求一遍\(LIS\),最后拿总人数减去满足\(T_1<...<T_i>T_{i+1}>…>T_K(1<=i<=K)\)的人数即可。
const int N=110;
int f[N],g[N];
int a[N];
int n;
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++)
{
f[i]=1;
for(int j=1;j<i;j++)
if(a[i] > a[j]) f[i]=max(f[i],f[j]+1);
}
for(int i=n;i>=1;i--)
{
g[i]=1;
for(int j=n;j>i;j--)
if(a[i] > a[j]) g[i]=max(g[i],g[j]+1);
}
int res=0;
for(int i=1;i<=n;i++) res=max(res,f[i]+g[i]-1);
cout<<n-res<<endl;
//system("pause");
}
标签:合唱队,int,max,正着,一遍,--,LIS,482 来源: https://www.cnblogs.com/fxh0707/p/13758146.html