题意:老师给N个学生发糖,第x次发糖发给编号为 f(x) 的学生。可以推知:f(x) = x * (x+1) / 2 % N(学生号为 0, 1, 2, 3, ```N-1 )
现在问你是否每个学生都能得到至少一颗糖。
题解:要使每个学生都至少得到一颗糖,那么f(x) 应该构成模N的完全剩余系。
那么这个问题的反面就是在什么情况下,f(x) 不能构成模N的完全剩余系。
我们知道若存在 x != y, 使得 f(x) = f(y),那么f(x)边不能构成模N的完全剩余系。
若f(x) = f(y), 推出 x * (x+1) / 2 % N = y * (y+1) / 2 % N, 推出 (x+y+1)(x-y) / 2 = 0 % N
这样可以假设 N^t = ......
阅读全文