http://acm.hdu.edu.cn/showproblem.php?pid=5668
题意:这题的意思是给你一个约瑟夫环,然后每个人按照k的步长出队,第ai个出队的人,编号为i,每个人的编号为1-n,让你求最小的步长,不存在就输出别的
题解:约瑟夫环变种问题,这次是告诉你出队的人,然后求步长了。
考虑第一次出队的情况:k=a1 (mod n)
n是第一次数人的时候圈的长度,a1的话是第一个出队的人的编号和前一个出队的人的编号之间间隔的还没被删除的人的个数,然后考虑编号是0到n-1,虽然约瑟夫环本质上,数到i的话应该是走了i+1步,但是这样可能会出现 k=n (mod n)的情况,所以只要求前一个出队和这次出队的之间的还没出队的人的个数,而不算上这次出队的这个人,这样的话这个k等于是k-1,然后求解完了之后再+1即可
贴一发代码:http://paste.ubuntu.net/15888159/
求解同余方程组的模板 x=b[i] (mod a[i])