刚开始没有考虑0也是一个单词的情况,卡在90分很久...后来终于发现了问题所在,改正后ac了,很高兴。

错误点:数组初始化全为0,这样就默认了字典中已经知道了一个单词0,题干中说开始默认一个单词都不知道.

改正:应该初始化存放字典的数组为无穷大(INF=0x3f3f3f3f),然后用原来的方法就通过了。

#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
int main(void){
	int m,n;cin>>m>>n;
	int arr[2005]={0},brr[2005]={0};int len=0,ans=0,flag=0;
	memset(arr,INF,sizeof(arr));
	for (int i=0;i<n;i++) cin>>brr[i];
	for (int i=0;i<n;i++)
	{
		int sumb=0;
		for (int j=0;j<m;j++)
		{
			if (arr[j]!=brr[i]) sumb++;
			else break;
		}
		if (sumb==m)
		{
			if (len>=m)
			{
				for (int c=0;c<m-1;c++)
				{
					arr[c]=arr[c+1];
				}
				arr[m-1]=brr[i];ans++;
			}
			else
			{
				arr[len]=brr[i];ans++;len++;	
			}
		}
	}
	cout<<ans;
}