logo AlgoBeat OnlineJudge
登录 注册

#104837. [BZOJ 4837] [Lydsy1704月赛]LRU算法

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:无测试数据
上传者: 匿名

题目描述

小 Q 同学在学习操作系统中内存管理的一种页面置换算法,LRU(LeastRecentlyUsed) 算法。

为了帮助小 Q 同学理解这种算法,你需要在这道题中实现这种算法,接下来简要地介绍这种算法的原理:

  1. 初始化时,你有一个最大长度为 的空队列,用于暂时存储一些页面的地址。
  2. 当系统需要加载一个不在队列中的页面时,如果队列已满,则弹出队首元素,并将需要加载的页面加到队 尾,否则直接将需要加载的页面加到队尾。
  3. 当系统需要加载一个在队列中的页面时,将该页面移至队尾。

在这道题中,小 Q 同学需要处理有 个请求,每个请求会给定一个整数 ,表示系统需要加载地址为 的页面,而你需要在每个请求完成后给出整个队列中页面的地址之和。为了便于计算,设第 个请求给出的整数为 ,第 个请求后你给出的答案为 ,则对于 ,其中 是给定的整数,并且你只需要输出 , 对 取模的值,而不是每个

输入格式

第一行包含一个正整数 ,表示有 组数据。 接下来依次给出每组测试数据。对于每组测试数据: 第一行包含两个正整数 。 第二行包含四个整数

输出格式

对于每组测试数据,输出一行一个非负整数,表示这组数据的答案。

样例输入

2
5 10
0 1 1 5
5 10
0 1 1 10

样例输出

485
1135

数据范围与提示

对于 的数据,。 鸣谢Tangjz提供试题