第33134题 程序题
基于LRU算法统计缺蛋次数

一位考古科学家新发掘了一批恐龙蛋化石,假设有 N 个,编号分别为 1~N,然后打算对它们进行研究。在科学家的实验室里,有两间房间,一间是他的办公室,一间是储物间。开始时所有的恐龙蛋化石都摆放在储物间,然后需要用到哪一个的时候,就把它拿到办公室来。

科学家的办公室有一张办公桌,桌上有 M 个盘子,每个盘子只能摆放一个恐龙蛋化石。科学家在进行研究时,有一个研究编号序列,如 1 2 5 表示先研究 1 号化石,再研究 2 号,再研究 5 号。

研究规则:

  1. 若要研究的化石已在办公桌上,可直接研究;
  2. 若不在办公桌上(称为“缺蛋”),需要去储物间取:
    • 若办公桌上有空盘子,直接将新化石放入空盘;
    • 若无空盘子,需要先淘汰一个最久未使用的化石放回储物间,再放入新化石。

为了减少“缺蛋”次数,采用 LRU(Least Recently Used,最近最少使用)淘汰算法:每次淘汰当前办公桌上最久未被访问的化石。

示例:假设研究序列为 1、2、3、4、1、2、5、1、2、3、4、5,盘子数 M=4,初始为空,采用LRU算法总缺蛋次数为 8 次。

输入描述

第一行是一个正整数 M,表示盘子的个数,其值不超过 100。 第二行是若干个正整数组成的研究编号序列。

输出描述

输出一个正整数,表示“缺蛋”的次数。

输入样例

4
1 2 3 4 1 2 5 1 2 3 4 5

输出样例

8
编辑模式
程序运行统计
暂无判题统计