社区讨论

站外题求解,直接发完整代码谢谢

灌水区参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lyy582m8
此快照首次捕获于
2024/07/23 16:17
2 年前
此快照最后确认于
2024/07/23 16:59
2 年前
查看原帖
置换(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

回复

3 条回复,欢迎继续交流。

正在加载回复...