疑似神题
首先发现一个事情:相同颜色的书一定是一起动或者一起不动,即行为平行。
发现了这件事就可以简单 \texttt{dp} 了。
#include<bits/stdc++.h>
using namespace std;
#define fio(x) freopen(x".in","r",stdin),freopen(x".out","w",stdout)
#define tio() freopen("in.txt","r",stdin),freopen("out.txt","w",stdout)
using ll=long long;
const int N=5e5+10;
int n;
int a[N],f[N];
int l[N],r[N],cnt[N];
int main(){
scanf("%d",&n);
for(int i=1;i<=n;++i){
scanf("%d",&a[i]);
if(!r[a[i]])r[a[i]]=n-i+1;
l[a[i]]=n-i+1;
}
reverse(a+1,a+1+n);
for(int i=1;i<=n;++i){
++cnt[a[i]];
f[i]=f[i-1];
if(r[a[i]]==i)f[i]=max(f[i],f[l[a[i]]-1]+cnt[a[i]]);
else f[i]=max(f[i],cnt[a[i]]);
}
printf("%d",n-f[n]);
return 0;
}