小 Q 同学在学习操作系统中内存管理的一种页面置换算法,LRU(LeastRecentlyUsed) 算法。
为了帮助小 Q 同学理解这种算法,你需要在这道题中实现这种算法,接下来简要地介绍这种算法的原理:
- 初始化时,你有一个最大长度为 的空队列,用于暂时存储一些页面的地址。
- 当系统需要加载一个不在队列中的页面时,如果队列已满,则弹出队首元素,并将需要加载的页面加到队
尾,否则直接将需要加载的页面加到队尾。
- 当系统需要加载一个在队列中的页面时,将该页面移至队尾。
在这道题中,小 Q 同学需要处理有 个请求,每个请求会给定一个整数 ,表示系统需要加载地址为 的页面,而你需要在每个请求完成后给出整个队列中页面的地址之和。为了便于计算,设第 个请求给出的整数为 ,第 个请求后你给出的答案为 ,则对于 有 ,其中 是给定的整数,并且你只需要输出 , 对 取模的值,而不是每个 。