HDU 4764 Stone(博弈)
来源:互联网 发布:前端数据渲染 编辑:程序博客网 时间:2024/05/17 02:34
题意:两个人轮流取数,比前一人大且最多比他大k,最后不能取到比n小的数的人输。
思路:巴什博奕裸题。取石子游戏换了个说法,本质是一样的。
巴什博奕(Bash Game):
只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。
只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。
显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的取法,那么先取者肯定获胜。总之,要保持给对手留下(m+1)的倍数,就能最后获胜。
注意题目说的是比n小的数,所以总数为n - 1。
#include <algorithm>#include <iostream>#include <sstream>#include <cstring>#include <cstdio>#include <vector>#include <string>#include <queue>#include <stack>#include <cmath>#include <set>#include <map>using namespace std;typedef long long LL;#define mem(a, n) memset(a, n, sizeof(a))#define rep(i, n) for(int i = 0; i < (n); i ++)#define REP(i, t, n) for(int i = (t); i < (n); i ++)#define FOR(i, t, n) for(int i = (t); i <= (n); i ++)#define ALL(v) v.begin(), v.end()#define si(a) scanf("%d", &a)#define sii(a, b) scanf("%d%d", &a, &b)#define siii(a, b, c) scanf("%d%d%d", &a, &b, &c)#define pb push_back#define eps 1e-8const int inf = 0x3f3f3f3f, N = 1e3 + 5, MOD = 1e9 + 7;int T, cas = 0;int n, m;int main(){#ifdef LOCAL freopen("/Users/apple/input.txt", "r", stdin);//freopen("/Users/apple/out.txt", "w", stdout);#endif while(sii(n, m), n + m) { printf("%s\n", (n - 1) % (m + 1) ? "Tang" : "Jiang"); } return 0;}
0 0
- HDU 4764-Stone(博弈)
- HDU 4764 Stone(博弈)
- hdu 4764 Stone(博弈)
- HDU 4764 Stone(博弈+推理)
- hdu 4764(stone) 巴什博弈
- HDU 4764 Stone (巴什博弈)
- HDU 4764 Stone(简单博弈)
- HDU 4764 Stone (巴什博弈变形)
- hdu 4764 Stone(巴什博弈)
- HDU 4764 Stone 巴什博弈
- HDU-4764-Stone 【巴什博弈】
- HDU 4387 Stone Game 博弈
- 【HDOJ 4764】 Stone (博弈)
- HDU 4764 Stone(巴什博弈变形)
- HDU 4764(Stone) 巴什博弈变形 Java
- hdu 1729 Stone Game 【博弈-找规律】
- HDU 4388 Stone Game II(博弈)
- HDU 4764 Stone (简单博弈) 2013 ACM/ICPC 长春网络赛
- TreeSet排序树
- C#if if else笔记
- HDU ACM 1051 Wooden Sticks
- 树形结构的数据库实现,存储过程实现添加删除查询功能
- linux mysql免安装版
- HDU 4764 Stone(博弈)
- linux系统查看、修改IP、网关、DNS的方法
- WebKit之NPAPI插件
- 文字排版(C程序设计进阶第5周)
- Android Fragment 真正的完全解析(下)
- lua 垃圾回收标记函数 reallymarkobject
- codeblocks 多线程编程时出现:对pthread_create未定义的引用,解决方法
- Android动画--移动View的几种方式
- nil Nil NULL