这是一个经典的博弈论问题。
每次可以取走 1∼k 颗石子。
当石子数量是 k+1 的倍数时,先手必败。因为无论先手取走 x 颗,其中 1≤x≤k,后手都可以取走 k+1−x 颗,使两人这一轮一共取走 k+1 颗。
这样后手可以一直保持这个策略,最终取走最后一颗石子。
一堆有 n 颗石子,两人轮流取,每次必须取走 1∼k 颗,取走最后一颗的人获胜。双方均以最优策略取子,判断先手获胜还是后手获胜。
一行两个正整数 n 和 k。
若先手获胜,输出YES;否则输出NO。
输入:
10 3
输出:
YES
说明:每次最多取 3 颗。先手先取 2 颗,剩下 8 颗;此后无论后手取 x 颗(1≤x≤3),先手都取 4−x 颗,总能取走最后一颗。
输入:
4 3
输出:
NO
说明:4 是 k+1=4 的倍数。先手无论取 1∼3 颗,后手都能一次取完并获胜。
本题属于以下题库,请选择所需题库进行购买
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.