-
Into Blocks (easy version)
http://codeforces.com/contest/1209/problem/G1
一到思维题我就没啥思维,,,
贪心找某段中数目最多的,然后直接删。
int n,m; int a[MAXN]; int lst[MAXN],cnt[MAXN]; int main() { rd(n);rd(m); for(int i=0;i<n;i++) { rd(a[i]); lst[a[i]]=i; cnt[a[i]]++; } int mx=0,mn=0,ans=0,f=0; for(int i=0;i<n;i++) { mx=max(mx,lst[a[i]]); f=max(f,cnt[a[i]]);// if(i==mx) { ans+=mx-mn+1-f; f=0; mx=mn=i+1; } } printf("%d\n",ans); //stop; return 0; }