欧几里德的游戏,洛谷之提高历练地,博弈论(3-6)

正题

      第三题:欧几里德的游戏

      这题我们会想到博弈论,因为这个题需要运用到一点“肯定性”。

      如样例:一开始(25,7)

      第一轮是{(11,7),(4,7)}

      第二轮是{(4,3),(1,3)}

      第三轮是{(1,0)}

      我们那很明显,如果我们把这样的,有一个数不变的几个操作,设为一轮。

      所以我们就让Stan拿到最后一轮的第一个操作。

      对于每一轮,有两个状态,第一步和最后一步,明显的,第一步(a>=2*b || b=2*b,那么就可以把这一轮变为两步,否则就只能走一步(zch大佬的死磕),死磕到最后就行了

代码<简短>

#include
#include
#include

int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		int k,n,m;
		scanf("%d %d",&n,&m);
		if(n

你可能感兴趣的:(欧几里德的游戏,洛谷之提高历练地,博弈论(3-6))