P0504

[Hnoi2010]Fsk物品调度

[Hnoi2010]Fsk物品调度

现在找工作不容易,Lostmonkey 费了好大劲才得到 fsk 公司基层流水线操作员的职位。

流水线上有 nn 个位置,从 00 到 n−1n-1 依次编号。一开始 00 号位置为空,其他位置 ii 上有编号为 ii 的盒子。Lostmonkey 要按照以下规则重新排列这些盒子。

规则由 55 个数描述:q,p,m,d,sq, p, m, d, s,其中 ss 表示空位的最终位置。

首先生成一个序列 cc:

c0=0,ci+1=(ci×q+p) mod m.c_0=0,\qquad c_{i+1}=(c_i\times q+p)\bmod m.

接下来从第一个盒子开始,依次生成每个盒子的最终位置 posipos_i:

posi=(ci+d×xi+yi) mod n,pos_i=(c_i+d\times x_i+y_i)\bmod n,

其中 xi,yix_i, y_i 是为了让第 ii 个盒子不与之前的盒子位置相同,而由你设定的非负整数,且 posipos_i 还不能为 ss。如果有多组 xi,yix_i, y_i 满足要求,你需要选择 yiy_i 最小的;当 yiy_i 相同时选择 xix_i 最小的。

这样你就得到了所有盒子的最终位置。现在你每次可以把某个盒子移动到空位上,移动后原盒子所在的位置成为空位。请问把所有的盒子移动到目的位置所需的最少步数是多少。

输入格式

第一行包含一个整数 tt,表示数据组数。

接下来 tt 行,每行 66 个数 n,s,q,p,m,dn, s, q, p, m, d,意义如上所述。

输出格式

对于每组数据输出一个数占一行,表示最少移动步数。

样例输入

1
8 3 5 2 7 4

样例输出

6

样例解释

第 11 个到第 77 个盒子的最终位置依次是 2,5,6,4,1,0,72, 5, 6, 4, 1, 0, 7。

数据范围

  • 对于 30%30\% 的数据,n≤100n\le 100;
  • 对于 100%100\% 的数据,t≤20t\le 20,n≤105n\le 10^5;
  • 注意计算过程可能超过整型范围。

来源与许可

本题为 HNOI 2010 试题「Fsk 物品调度」,题面与测试数据整理自 BZOJ 1998。

样例 1

输入

1
8 3 5 2 7 4

输出

6