新手启示者
1382.....................................................
小王有一个好习惯,那是就是每天坚持背单词,小王的记性不太好,但是小王有自己的方法。
他随身会携带一个记事本,将单词记到本子里面,但是有一个问题,记事本只有M页,并且每页只能记录一个单词。
当他碰到一个单词,他就会去记事本里查询单词的翻译,如果记事本里没有记录这个单词的话,小王就需要查字典了,然后再将单词记录到记事本里,以备后续的查找。
如果记事本里有这个单词,那小王就可以立马知道单词的意思啦。
假设记事本中有M页,每页只能记录一个单词。每当小王将一个新单词(记事本里没有记录的单词)记录到单词本前,如果当前记事本中已经记录的单词数不超过M,小王就会将新单词存入一个未使用的页里;若记事本中已记录M个单词,小王只能清空最早记录的那个单词,腾出这一页用来记录新单词。
一天小王阅读一篇文章,文章的长度为N个单词,请问小王总共需要查多少次字典?假设在阅读开始前,小王的记事本里中没有记录任何单词。
输入描述 Input Description
输入文件共2行。
第一行为两个正整数M和N,代表记事本总共的页数和文章的长度。
第二行为N个非负整数,按照文章的顺序,每个数(大小不超过1000)代表一个英文单词。如果两个单词相同的话,那它们对应的非负整数就是相同的。
对于10%的数据有M=1,N≤5。
对于100%的数据有0<=M<=100,0<=N<=1000
输出描述 Output Description
包含一个整数,小王总共需要查多少次字典。
样例输入 Sample Input
3 7 1 2 1 5 4 4 1
样例输出 Sample Output
5
WHAT??????????????????????????
大佬们,是时候将真正的技术绽放出来了!!!
新手天翼
int main(){
int h=1,t=1,n,a[1001],m,count=0;
cin>>m>>n;
for(int i=1;i<=n;i++){
int temp,flag=0;
cin>>temp;
for(int j=h;j<=t;j++){
if(temp==a[j]){
flag=1;
break;
}
}
if(flag==0){
count++;
a[t]=temp;
t++;
if(t-h>m)h++;
}
}
cout<<count;
张展嘉在2021-05-04 09:19:15追加了内容
最后少了给大括号
张展嘉在2021-05-04 09:43:38追加了内容
OK,都关注了