#P0604. 实验鼠的投喂计划
实验鼠的投喂计划
题目描述
小鼠研究员小白管理一批实验鼠,每只鼠有固定编号( ~ )。
实验室每天会从一批鼠中抽取一只进行实验,但为了避免同一只鼠短期内被重复抽取产生应激反应,系统会记录最近参与实验的 只鼠。
每天抽鼠时规则如下:
- 如果被抽到的鼠不在最近记录中,就需要为它安排一次适应性训练,并把它加入记录末尾。
- 如果被抽到的鼠已在最近记录中,说明它在近期已参加过实验,今天不再安排训练,但要将它移到记录的末尾(表示刚刚又被访问过)。
- 如果记录已满(达到 只鼠)且要加入新鼠,则删除记录中最久之前被访问的那一只。
给定 天的抽鼠记录,问总共安排了多少次 “适应性训练”。
输入格式
第一行两个整数 , 是实验天数, 是最多记录数。
第二行 个整数,表示每天抽到的鼠编号。
输出格式
一个整数,表示适应性训练的次数。
样例
10 3
1 2 3 4 3 2 1 5 4 1
7
样例1解释
初始记录为空。
第 天:鼠 不在记录 → 安排训练,记录 ,次数
第 天:鼠 不在记录 → 安排训练,记录 ,次数
第 天:鼠 不在记录 → 安排训练,记录 ,次数
第 天:鼠 不在记录,记录已满 → 淘汰最早的 ,记录 ,次数
第 天:鼠 在记录 → 不安排训练,但将 移到末尾,记录
第 天:鼠 在记录 → 不安排训练,但将 移到末尾,记录
第 天:鼠 不在记录,记录已满 → 淘汰最早的 ,记录 ,次数
第 天:鼠 不在记录,记录已满 → 淘汰最早的 ,记录 ,次数
第 天:鼠 不在记录,记录已满 → 淘汰最早的 ,记录 ,次数
第 天:鼠 在记录 → 不安排训练,但将 移到末尾,记录
总次数 。
数据范围
对于 的数据,。
对于 的数据,。
数据已从 提升到 。