-
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;
} 
京公网安备 11010502036488号