HDU1525 Euclid's Game(博弈)
2015-05-13 18:27
302 查看
题目大意:
给出两个数,每次用大的数减去小的数的正整数倍
将小的数变为0者获胜
设两个数为a,b(a>=b)
则必胜态为a%b==0
当b<a<2*b时,下一个状态只能是b,a-b
一直反复下去则有一人先到必胜态
当a>=2*b时,先手可以让下一个状态到达b,a%b或者a%b+b,b
这两个状态之中一定有一个是必胜态一个是必败态
由于先手很聪明,所以先手一定可以走到必胜态
给出两个数,每次用大的数减去小的数的正整数倍
将小的数变为0者获胜
设两个数为a,b(a>=b)
则必胜态为a%b==0
当b<a<2*b时,下一个状态只能是b,a-b
一直反复下去则有一人先到必胜态
当a>=2*b时,先手可以让下一个状态到达b,a%b或者a%b+b,b
这两个状态之中一定有一个是必胜态一个是必败态
由于先手很聪明,所以先手一定可以走到必胜态
#include <stdio.h> int main() { int a,b,t,flag; while(scanf("%d%d",&a,&b)&&(a||b)) { flag=1; if(a<b) t=a,a=b,b=t; while(a%b!=0&&a<2*b) { a=a-b; t=a,a=b,b=t; flag=-flag; } if(flag==1) printf("Stan wins\n"); else printf("Ollie wins\n"); } return 0; }
相关文章推荐
- hdu1525 Euclid's Game , 基础博弈
- POJ 2348 Euclid's Game (博弈找规律 )
- [简单博弈] hdu 1525 Euclid's Game
- HDU1525 Euclid's Game
- hdu1525 Euclid's Game , 基础博弈
- HDU 1525 Euclid's Game 博弈
- 威佐夫博弈变形 poj2348 Euclid's Game
- hdu 1525 Euclid's Game 博弈
- hdu 1525 Euclid's Game 博弈
- hdu 1525 || poj 2348 Euclid's Game(博弈找规律)
- HDU 1525 Euclid's Game (博弈)
- hdu 2147 kiki's game 简单博弈
- uva 10404 Bachet's Game(dp 博弈)
- POJ2348:Euclid's Game
- hdu1525-------Euclid's Game 找规律
- POJ-2348-Euclid's Game
- hdu1525 Euclid's Game 博弈
- POJ 2348 Euclid's Game
- UVA - 10404 Bachet's Game 博弈
- HDU5591 - ZYB's Game (简单博弈)