[POJ2505]A multiplication game(博弈)
来源:互联网 发布:python判断是否是str 编辑:程序博客网 时间:2024/05/17 06:58
题目描述
传送门
题意:起始数为1,每次可以将这个数乘2或乘9,首先得到>=n的数的人获胜。问是否有必胜策略。
题解
这道题我用了一个非常奇怪的方法。
当n<=18的时候随便讨论一下就行了。来看n>18的情况。
首先我们将n分解为
1、当x=1的时候,先手必败。因为无论先手选择2还是9,后手都可以选择另一个数将其凑成18.
2、当x>9的时候,先手必败。同样无论先手选择2还是9,后手都可以选择另一个数将其凑成18。而最后凑不成整18的那个数,先手无论选2还是选9都会帮助后手取得胜利。
3、当x<=2的时候,先手必胜。因为先手可以先选一个2,然后无论后手怎么选,都选另一个数来凑成18。
4、当
代码
#include<iostream>#include<cstring>#include<cstdio>using namespace std;double n;const double mi=18.0;int main(){ while (~scanf("%lf",&n)) { if (n<mi) { if (n<=9) puts("Stan wins."); else puts("Ollie wins."); continue; } double p; for (p=1.0;;) if (p*mi>n) break; else p*=mi; double t=n/p; if (t==1) puts("Ollie wins."); else if (t>9) puts("Ollie wins."); else if (t<=2) puts("Stan wins."); else if (t<=4.5) puts("Ollie wins."); else puts("Stan wins."); }}
- [POJ2505]A multiplication game(博弈)
- poj2505 - A multiplication game
- 【poj2505】A multiplication game
- poj2505:A multiplication game(Hash)
- A Multiplication Game (博弈)
- A Multiplication Game + 博弈
- [博弈] A Multiplication Game
- A Multiplication Game 博弈
- poj 2505 A multiplication game(博弈)
- HDU(1517)A Multiplication Game(博弈)
- A Multiplication Game 1517 (博弈+规律)
- HDU 1517 A Multiplication Game(博弈)
- HDU 1517 A Multiplication Game(博弈)
- POJ 2505 A multiplication game(博弈)
- hdoj 1517 A Multiplication Game(博弈)
- A Multiplication Game (博弈,规律)
- poj2505(典型博弈)
- HDU 1517 A Multiplication Game(博弈入门)
- hibernate 无法自动创建表 的解决办法
- 合并两个有序链表(非递归与递归)
- C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制
- 安装redis和配置redis
- 分页
- [POJ2505]A multiplication game(博弈)
- markdown 基本语法
- Matlab与线性代数--矩阵的LU分解
- 网络流24题1 飞行员配对方案问题
- Linux系统中的内存清理和释放命令归纳
- springmvc常用注解标签详解
- 电子老鼠闯迷宫
- python常用模块大全
- mysql中数据类型的长度