hdu 1517 K(2~9)倍博弈
来源:互联网 发布:程序员培训夜校 编辑:程序博客网 时间:2024/06/11 21:22
http://acm.hdu.edu.cn/showproblem.php?pid=1517
以前做过不过不认真,现在又忘了。
出处:http://qianmacao.blog.163.com/blog/static/203397180201223174133470/
博弈问题
题意:两人玩游戏,从1开始,轮流对数进行累乘,直到超过一个指定的数。
算法分析:
①、如果输入是2~9,因为Stan是先手,所以Stan必胜。
②、如果输入是10~18(9*2),因为Ollie是后手,不管第一次Stan乘的是多少,Stan肯定在2~9之间,如果Stan乘以2,那么Ollie就乘以9,那么Ollie乘以大于1的数都能超过10~18中的任何一个数,Ollie必胜。
③、如果输入的是19~162(9*2*9),那么这个范围Stan必胜。
④、如果输入是163~324(2*9*2*9),这个是Ollie的必胜范围。
…………
可以发现必胜态是对称的。
如果“我方”首先给出了一个在N不断除18后的得到不足18的数M,“我方”就可以胜利,然而双方都很聪明,所以这样胜负就决定与N了,如果N不断除18后的得到不足18的数M,如果1<M<=9则先手胜利,即Stan wins.如果9<M<=18则后手胜利。
View Code
// I'm lanjiangzhou//C#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <math.h>#include <time.h>//C++#include <iostream>#include <algorithm>#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <cctype>#include <stack>#include <string>#include <list>#include <queue>#include <map>#include <vector>#include <deque>#include <set>using namespace std;//*************************OUTPUT*************************#ifdef WIN32#define INT64 "%I64d"#define UINT64 "%I64u"#else#define INT64 "%lld"#define UINT64 "%llu"#endif//**************************CONSTANT***********************#define INF 0x3f3f3f3f// aply for the memory of the stack//#pragma comment (linker, "/STACK:1024000000,1024000000")//endint main(){ double n; while(scanf("%lf",&n)!=EOF){ while(n>18){ n=n/18; } if(n<=9) printf("Stan wins.\n"); else printf("Ollie wins.\n"); } return 0;}
- hdu 1517 K(2~9)倍博弈
- HDOJ1517[K(2~9)倍博弈][有规律存在]
- HDOJ 题目A Multiplication Game(博弈,k(2~9)倍博弈)
- A simple stone game - HDU 2486 K倍递减博弈
- HDU 2486 A simple stone game (K 倍动态减法博弈游戏,还未理解)
- HDU 2580 a simple stone game K倍减法博弈游戏
- ZOJ-3599 Game (博弈 K倍动态减法)
- K倍动态减法(hdu 2486)
- HDU A simple stone game [K倍动态减法游戏]
- K倍动态减法游戏 HDU 2486&&POJ 3922
- (k倍动态减法游戏)zoj 3599 hdu 2486
- hdu2486 hdu2580 poj3922 A simple stone game--K倍动态减法游戏 博弈
- 由K倍动态减法联想到的一类博弈问题 HDOJ 2580
- Poj-3922 A simple stone game(博弈,k倍动态减法)
- 斐波那契博弈-K倍动态减法游戏(Poj-3922 A simple stone game)
- hdu 1517 (博弈)
- hdu 1517 博弈
- k倍区间
- hdu 1730 sg博弈||nim博弈
- hdu 1851 巴什博弈
- n hdu 1760 [SG博弈]二维状态
- 心杂
- hdu 2177 威佐夫博弈+输出使你胜的你第1次取石子后剩下的两堆石子的数量
- hdu 1517 K(2~9)倍博弈
- hdu 2897巴什博弈变形
- (转载)SG函数模板
- hdu 1848 sg博弈模版题
- 坚持住
- fight1
- 莫走回头路
- 真正体会到一个ac的快感
- poj 1804求逆序数