站外题求解,直接发完整代码谢谢
  • 板块灌水区
  • 楼主Haojianjie
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/7/23 16:15
  • 上次更新2024/7/23 16:59:59
查看原帖
站外题求解,直接发完整代码谢谢
998211
Haojianjie楼主2024/7/23 16:15

置换(displace) 【题目描述】

有 ? n 个页面 ? 1 a 1 ​ 到 ? ? a n ​ ,需要按从小到大的顺序进行访问。最开始这些页面处于硬盘中,为了提高访问速度,需要将它们放入位于内存中的页表,再进行页面的访问。页表的大小为 ? m,表示最多容纳 ? m 个页面,当下一个需要访问的页面不在页表之中时,会产生两种情况:

页表未满,将该页加入页表。 页表已满,需要从中选择其中一个页面,并将其置换掉。 那么如何去选择这样的页面呢?

你需要实现这样一个算法:将当前页表中 在将来 最久未使用的页面替换掉,若多个页面同时满足条件,则替换最早进入页表的页面。

请输出被替换掉的页面个数。

【输入格式】

从文件 displace.in 中读取数据

第一行包含两个正整数 ? , ? n,m,分别表示页面大小,页表大小。

第二行包含 ? n 个由空格分隔的正整数 ? 1 , ? 2 , … , ? ? a 1 ​ ,a 2 ​ ,…,a n ​ ,表示页面走向。

【输出格式】

输出到文件 displace.out 中

输出一行包含一个整数表示被替换掉的页面个数。

【输入样例 1】

7 3 1 4 5 1 4 9 1 【输出样例 1】

1 【输入样例 2】

9 2 1 2 3 2 3 1 2 3 1 【输出样例 2】

3 【数据范围与约定】

对于 30 % 30% 的数据,有 ? ≤ 100 n≤100。 对于 60 % 60% 的数据,有 ? ≤ 1 0 3 n≤10 3 , 1 ≤ ? ≤ 100 1≤m≤100。 对于 100 % 100% 的数据,有 5 ≤ ? ≤ 1 0 5 5≤n≤10 5 , 1 ≤ ? ≤ 1000 1≤m≤1000, 1 ≤ ? ? ≤ ? 1≤a i ​ ≤n。 【样例解释】

样例解释 1

页表中的页面变化如下所示:

1 1 4 1 4 5 1 4 5 1 4 5 1 9 5 (4和5同时满足条件,4最先进入) 1 9 5 样例解释 2

页表中的页面变化如下所示:

1 1 2 3 2 (1比2在将来更晚使用) 3 2 3 2 1 2 (3比2在将来更晚使用) 1 2 1 3 (2之后都不会再被使用) 1 3

2024/7/23 16:15
加载中...