#L0526. 词库缓存查询

词库缓存查询

题目描述

小李的平板上安装了一款智能助手,他经常用这个助手来翻译外语段落。

这个智能助手的工作原理很简单,它会从头到尾依次将每个外语单词翻译为对应含义。对于每个单词,助手会先在内部缓存中查找对应含义。如果缓存命中,就直接返回;如果未命中,则从外部数据库中读取对应含义并返回,同时将该词写入缓存,以便后续使用。

假设内部缓存能存放 MM 个词。当需要写入一个新词时,如果缓存未满(当前词数不超过 M1M-1),则直接放入空位;如果缓存已满,则先清空最早写入的那个词,腾出空间再存入。

现在给出一篇文章的 NN 个词(用非负整数编号表示),请计算助手需要从外部数据库读取多少次。假设翻译开始前缓存为空。

输入格式

22 行。每行中两个数之间用一个空格隔开。

第一行为两个正整数 M,NM,N,分别表示缓存容量和文章的词数。

第二行为 NN 个非负整数,按照文章的顺序给出,每个数(大小不超过 10001000)代表一个词。两个编号相同的词视为同一个词。

输出格式

一个整数,表示需要从外部数据库读取的次数。

样例

3 7
1 2 1 5 4 4 1
5

提示

数据范围

  • 对于 10%10\% 的数据有 M=1M=1N5N \leq 5
  • 对于 100%100\% 的数据有 1M1001 \leq M \leq 1001N10001 \leq N \leq 1000
难度 普及-
通过率
尝试 0
已通过 0
ID
1254
类型
传统题
Time Limit
1000ms
Memory Limit
125MiB
上传者