基于LRU算法统计缺蛋次数

im390453 程序题 共 个子题

一位考古科学家新发掘了一批恐龙蛋化石,假设有 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

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧