题意:

给你两个数a和b(1 <= a, b <= 1e4),i-a>=0 且i-a为白,则i为白,i-b>=0且i-b为白,则i为白,

否则为黑。

其中初始化0为白。

问你是否有无穷个黑。

题解:

对这个问题,我们只需要简化:

如果并没有无限个黑,必然是存在某个数后,之后的所有数都是白色

那么必然有一个长度为b - a + 1的区间,区间中的所有数都是白色,那么之后的所有数都是白色

同时,对于任意一个白色的数c,其必然满足:ax + by = c ,gcd(a,b) | c

所以这就要求这个b - a + 1长度的区间内的数必须全部可以被gcd(a, b)整除

 

1.对于gcd(a, b) > 1

(1)对于区间长度为1,那么gcd(a, b) = a = b

那么只有a和b的倍数会为白色,因此黑色无限

(2)对于区间长度大于1,那么我们知道任意两个相邻的数都是互质的,所以它们不可能可以同时被一个大于1的数整除

那么此时就不可能出现这样一个区间。

 

2. gcd(a, b) == 1,那么必然有一个区间会满足所有的数都可以被1整除。

那么由裴蜀定理可以知道:

ax + by = gcd(a, b)必有解,x = x0, y = y0。

当gcd(a, b) = 1, 如果ax + by = c,那么解为x = cx0, y = cy0

引入麦乐鸡定理:

自然数a,b互质,则不能表示成ax+by(x,y为非负整数)的最大整数是ab-a-b。

证明:见这位大神:https://zhidao.baidu.com/question/305250238.html

由此我们可以知道,若gcd(a, b) == 1, 则从ab-a-b+1开始,所有的数都可以表示成ax+by的形式

所以必然存在区间全白,那么由无限个白,则只有有限个黑