取石子 找规律

1 取石子

1.1 Background

CZR是个智障小朋友,朌近他家装修,多出来很多石子,所以他决定

用这个来做一个游戏.

因为这是个双人游戏,所以他又找来了LSQ.

1.2 Description

游戏规则很简单:

1. 地上有很多石子,丌共n个,两个人轮流从地上拿走买部分石子;

2. 每个人每仏次必须要拿走石子,但是拿走的石子个数必须大于等

于1,小于等于k;

3. 游戏朏式始CZR先拿,拿到地上朊后一个石子的人获胜.

然而CZR的数学不太好,所以他想知道对于这个游戏他一定能获胜

吗?

1.3 Task

1.3.1 Input

输入有5行,表示CZR进行了5次游戏.

输入的每仏行都有两个数n, k,表示为次游戏的n和k.

1.3.2 Output

输出有5行,其中每仏行的游戏中如果CZR乒定能获胜,则输出’Yes’;

否则输出’No’.

21.4 Sample

1.4.1 Input

1 1

2 1

5 2

6 2

10 3

1.4.2 Output

Yes

No

Yes

No

Yes

1.5 Explanation

NaN.

1.6 Constraint

对50%的数据,n, k ≤ 10.

对100%的数据,n, k ≤ 10

9

.

这一道题就非常的坑了

一开始以为这是一道比较难的题 就钻研了半天

结果 。。。这是一道找规律题

规律就是 如果n%(k+1)==0就是NO  否则就是YES

这可真是让人摸不着头脑

解释是这个样子的

如果你是先手

倒数第二次你拿的时候 只要剩下k+1个石子 你就一定会赢

对手无论拿1-k个 都是你拿走最后一个

然后整个n可以表示为

t(k+1)....

然后A和B是交替先手的

如果%了之后是0 就是B赢了 否则A一定能赢

以后还是自己带好演算纸 列几个数找找规律吧 列一个表

n    1 2 3 4 5 6 7

k=1  Y N Y N Y N Y

k=2  Y Y N Y Y N Y

k=3  Y Y Y N Y Y Y

....

原文地址:https://www.cnblogs.com/Tidoblogs/p/11621942.html

时间: 2024-08-07 08:11:23

取石子 找规律的相关文章

1005:取余,循环,找规律

Problem Description A number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.Given A, B, and n, you are to calculate the value of f(n). Input The input consists of multiple test cases. Each test case cont

poj 1067||hdu 1527 取石子游戏(博弈论,Wythoff Game)

取石子游戏 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 37893   Accepted: 12684 Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后把石子全部取完者为胜者.现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者

BZOJ 3895: 取石子[SG函数 搜索]

有N堆石子 ·从某堆石子中取走一个 ·合并任意两堆石子 不能操作的人输. 100%的数据满足T<=100,  N<=50. ai<=1000 容易发现基础操作数$d=\sum a_i +n-1$ 没有个数为1的堆还好说,有的话@#$%^&好麻烦啊啊啊啊啊怎么可能找规律 然后看题解,woc记忆化搜索 $f(i,j)$表示i个个数为1的堆,其他操作数为j的胜负态 枚举操作转移就行了,一定要枚举对!注意$j=1$时 #include <iostream> #include

51nod_1831: 小C的游戏(Bash博弈 找规律)

题目链接 此类博弈不需要考虑sg函数,只需要确定必胜态和必败态,解题思路一般为打败先打表找规律,而后找规律给出统一的公式.打表方式:给定初始条件(此题中为ok[0]=ok[1]=0),然后从低到高枚举某一状态的所有次态,若有存在必败次态,则当前状态为必胜态,否则当前状态必败. 题意:对单独一堆石子,支持两种操作:1.石子数-1:2.石子数变为原来石子数的某一因数.取走走后一堆或无法操作(面对n==0,坑啊..)者为负. 先打表找下规律 1 #include<bits/stdc++.h> 2 u

取石子问题

取石子问题 有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可.两个人轮流从堆中取物体若干,规定最后取光物体者取胜.这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理.下面我们来分析一下要如何才能够取胜. (一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜. 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜

[原博客] POJ 1067 取石子游戏

题目链接有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后把石子全部取完者为胜者.现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者.(中文题面,感动ing) 但是这道题实在是呵呵.开始没啥思路,根据必胜状态必败状态的定义,n^3打了个表,看起来是这样的. 图为100x100,已经缩小,左上角是状态(0,0),右下角状态为(10

hdu 2516 取石子游戏

取石子游戏 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2816    Accepted Submission(s): 1626 Problem Description 1堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍.取完者胜.先取者负输出"Second win&qu

POJ - 1067 取石子游戏(包括贝蒂定理的巧妙证明)

关键词: 取石子游戏.威佐夫博奕.betty贝蒂定理.胜态.负态.状态转移.覆盖(分划).高斯函数.第二数学归纳法.黄金分割比例 题目: Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后把石子全部取完者为胜者.现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者. Input 输入包含若干行,表示若干种石

HDU 2516 取石子游戏 (博弈论)

取石子游戏 Problem Description 1堆石子有n个,两人轮流取.先取者第1次能够取随意多个,但不能所有取完.以后每次取的石子数不能超过上次取子数的2倍.取完者胜.先取者负输出"Second win".先取者胜输出"First win". Input 输入有多组.每组第1行是2<=n<2^31. n=0退出. Output 先取者负输出"Second win". 先取者胜输出"First win".