#P11157. 机器翻译
机器翻译
题目描述
小晨的电脑上安装了一个机器翻译软件,用于翻译英语文章。
翻译软件的工作原理如下:
- 按文章顺序依次处理每个英文单词,将其替换为对应中文含义
- 查找中文含义的顺序:
- 先在内存中查找,如果找到则直接翻译
- 如果内存中没有,则去外存词典查找,并将该单词及译义存入内存
- 内存管理:
- 内存容量为 M,每个单元可存放一个单词和译义
- 若内存未满,则将新单词存入空闲单元
- 若内存已满,则清空最早进入内存的单词,为新单词腾出空间
已知一篇英语文章长度为 N,文章中的每个单词用一个非负整数表示(相同整数表示同一单词)。
请计算软件需要去外存查找词典的次数。假设翻译开始前,内存为空。
输入格式
- 第一行:两个正整数 M、N,分别表示内存容量和文章长度
- 第二行:N 个非负整数,按文章顺序表示单词
输出格式
输出一个整数,表示软件需要查词典的次数。
输入样例 #1
3 7
1 2 1 5 4 4 1
输出样例 #1
5
题目说明
整个查字典过程如下(每行表示处理单词后的内存状况):
- 空:内存初始为空
- 查找单词 1 并调入内存
- 查找单词 2 并调入内存
- 单词 1 已在内存中
- 查找单词 5 并调入内存
- 查找单词 4 并调入内存,替代最早进入的单词
- 单词 4 已在内存中
- 查找单词 1 并调入内存,替代最早进入的单词
共计查了 5 次词典。
数据范围与提示
- 对于小数据:M ≤ 10, N ≤ 1000
- 对于大数据:M ≤ 1000, N ≤ 100000