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)。

不然继续暴力模拟下去。

相关文章
相关标签/搜索