poj1067(威佐夫博奕)

2024-09-09 17:32
文章标签 poj1067 佐夫 博奕

本文主要是介绍poj1067(威佐夫博奕),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意:给两堆石头,两种操作,1、在任意一堆中去任意个石头;2、在两堆中去相同多个石头

必败状态为(0,0)(1,2)(3,5)(4,7)(6,10 )  ( 8 ,13 ) (9,15)、(11,18)、(12,20)。。。。。

然后请参照http://blog.csdn.net/u013509299/article/details/37954679

代码如下:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<stack>
#include<queue>
#include<set>
#include<map>
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<time.h>
#include<math.h>#define inf 0x7ffffff
#define eps 1e-9
#define pi acos(-1.0)
#define P system("pause")
using namespace std;int main()
{
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);int a,b;while(scanf("%d%d",&a,&b) != EOF)                    //a = (k*(<span style="font-family: Arial;font-size:14px; line-height: 26px; ">√5</span> + 1)/2)   b = a + k,然后接方程即可{if(a>b) swap(a,b);//a < bdouble temp = (1.0+sqrt(5.0))/2;int c = b - a;if(a == floor(c*temp) )printf("0\n");else printf("1\n");}return 0;
}



这篇关于poj1067(威佐夫博奕)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1151812

相关文章

hdu 1846 Brave Game 巴什博奕

Description 十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫《勇敢者的游戏》(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象深刻。  今天,大家选择上机考试,就是一种勇敢(brave)的选择;这个短学期,我们讲的是博弈(game)专题;所以,大家现在玩的也是“勇敢者的游戏”,这也是我命名这个题目的原因。  当然,除了

POJ1067 取石子游戏(博弈论)

取石子游戏 Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 36633 Accepted: 12396 Description 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者

[HDU 5754] Life Winner Bo (有平局的博弈+威佐夫博弈)

HDU - 5754 有一个 N×M N \times M的国际象棋棋盘,刚开始左上角有一个棋子 每次只能往右下角移动,谁先到达右下角谁就赢 如果无论如何也到不了右下角,就平局 有四种棋子,王、车、马、后 博弈四合一 王 打表即可车 相当于两堆分别为 N−1 N-1和 M−1 M-1的石子的 Nimm Nimm游戏马 有平局的游戏,规则如下 如果一个局面能取得胜利

HDU 1527 取石子游戏 威佐夫博弈

题目来源:HDU 1527 取石子游戏 题意:中文 思路:威佐夫博弈 必败态为 (a,b ) ai + i = bi     ai = i*(1+sqrt(5.0)+1)/2   这题就求出i然后带人i和i+1判断是否成立 以下转自网上某总结 有公式ak =[k(1+√5)/2],bk= ak + k  (k=0,1,2,…,n 方括号表示取整函数)  其中出现了黄金分割数(1+√5)/

hdu1527取石子游戏(威佐夫博奕)

Problem Description 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。 Input 输入包含若干行,表示若干

博弈模板(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈)

一.  巴什博奕(Bash Game):   A和B一块报数,每人每次报最少1个,最多报4个,看谁先报到30。这应该是最古老的关于巴什博奕的游戏了吧。 其实如果知道原理,这游戏一点运气成分都没有,只和先手后手有关,比如第一次报数,A报k个数,那么B报5-k个数,那么B报数之后问题就变为,A和B一块报数,看谁先报到25了,进而变为20,15,10,5,当到5的时候,不管A怎么报数,最后一个数肯定

杭电1527-取石子游戏(威佐夫博弈)

取石子游戏 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 2591    Accepted Submission(s): 1253 Problem Description 有两堆石子,数量任意,可以不同。游戏开始由两

1185 威佐夫游戏 V2

1185 威佐夫游戏 V2  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 有2堆石子。A B两个人轮流拿,A先拿。每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出2堆石子的数量,问最后谁能赢得比赛。 例如:2堆石子分别为3颗和5颗。那么不论A怎

[ACM] hdu 2149 Public Sale (巴什博奕)

Public Sale Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3396    Accepted Submission(s): 2095 Problem Description   虽然不想,但是现实总归是现实,

[ACM] hdu 1846 Brave Game (巴什博奕)

Brave Game Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5644    Accepted Submission(s): 3748 Problem Description 十年前读大学的时候,中