bzoj#P4837. [Lydsy2017年4月月赛]LRU算法
[Lydsy2017年4月月赛]LRU算法
题目描述
小 Q 同学在学习操作系统中内存管理的一种页面置换算法,LRU(LeastRecentlyUsed) 算法。
为了帮助小 Q 同学理解这种算法,你需要在这道题中实现这种算法,接下来简要地介绍这种算法的原理:
- 初始化时,你有一个最大长度为 的空队列,用于暂时存储一些页面的地址。
- 当系统需要加载一个不在队列中的页面时,如果队列已满,则弹出队首元素,并将需要加载的页面加到队 尾,否则直接将需要加载的页面加到队尾。
- 当系统需要加载一个在队列中的页面时,将该页面移至队尾。
在这道题中,小 Q 同学需要处理有 个请求,每个请求会给定一个整数 ,表示系统需要加载地址为 的页面,而你需要在每个请求完成后给出整个队列中页面的地址之和。为了便于计算,设第 个请求给出的整数为 ,第 个请求后你给出的答案为 ,则对于 有 ,其中 是给定的整数,并且你只需要输出 , 对 取模的值,而不是每个 。
输入格式
第一行包含一个正整数 ,表示有 组数据。 接下来依次给出每组测试数据。对于每组测试数据: 第一行包含两个正整数 和 。 第二行包含四个整数 。
输出格式
对于每组测试数据,输出一行一个非负整数,表示这组数据的答案。
样例输入
2
5 10
0 1 1 5
5 10
0 1 1 10
样例输出
485
1135
数据范围与约定
对于 的数据,,,,,。
题目来源
鸣谢Tangjz提供试题