HDU 1525 Euclid's Game

题意:

给定两个数a和b,A和B轮流操作,每次可以用大的那个减去小的那个的若干倍数,要求减完非负。谁赢?

知识点:

博弈论

解法:

首先一个性质:设a>b,假如b<a<2b,接下来的操作肯定是唯一的,也就是胜败已定。

那么对于当前先手的人,如果a是b的倍数,那么他赢,假如a>2b,他也赢(因为他可以控制这一把到底变成b,a%b还是b,a%b+b,因为他可以预先推算变成上述性质的那个地方到底是N还是P,然后他会让对手变成P)。

否则继续暴力模拟下去。

posted @ 2020-04-24 14:22  MN2016  阅读(93)  评论(0编辑  收藏  举报