Wythoff Game

时间限制:1000 ms | 
内存限制:65535 KB

难度:1

描写叙述

近期ZKC同学在学博弈,学到了一个伟大的博弈问题--威佐夫博弈。

相信大家都学过了吧?没学过?没问题。我将要为你讲述一下这个伟大的博弈问题。

有两堆石子,数量随意,能够不同。

游戏開始由两个人轮流取石子。

游戏规定,每次有两种不同的取法:

一是能够在随意的一堆中取走随意多的石子;

二是能够在两堆中同一时候取走同样数量的石子。

最后把石子所有取完者为胜者。

我们今天要做的是求前n个必败态。

什么是必败态?比方我们把(a,b)称为一种状态,a,b分别为两堆石子中所剩的数目。假设a=0,b=0,我们说该种状态为必败态,由于我不能再进行游戏。即使是能够进行。那也是必败的,你知道,游戏的我们都是很聪明的。(0,0)(1,2)(3,5)...都是必败态,我们今天要做的就是求前n个必败态。不会?好吧!

我再告诉你:如果第n个必败态为(a。b)a为前n-1个必败态中没有出现的最小自然数,b=a+n。

这下大家应该明确了吧。

好吧,我们的任务就的要前n个必败态。

规定第0个必败态为(0,0)。

输入

多组数据。

输入为一个数n(0<=n<=100000)。

输出

依照要求求出前n个必败态。输出格式看以下例子。

例子输入

3

1

例子输出

(0,0)(1,2)(3,5)(4,7)

(0,0)(1,2)

提示

注意:每种情况中间没有空格

思路:

就是运用的威佐夫博弈的原始定义。bk=ak+k;ak=(1+sqrt(5))/2*k;

就是简单的暴力枚举。

代码例如以下:

<span style="font-size:14px;">#include<stdio.h>
#include<math.h>
struct sit{
int a,b;
}s[100100];
void f()
{
s[0].a=s[0].b=0;
for(int i=1;i<100100;i++)
{
s[i].a=(1+sqrt(5))*i/2;
s[i].b=s[i].a+i;
}
}
int main()
{
int n;
f();
while(~scanf("%d",&n))
{
for(int i=0;i<=n;i++)
{
printf("(%d,%d)",s[i].a,s[i].b);
}
puts("");
}
return 0;
}</span>

nyoj Wythoff Game(暴力枚举)的更多相关文章

  1. CodeForces 742B Arpa’s obvious problem and Mehrdad’s terrible solution (暴力枚举)

    题意:求定 n 个数,求有多少对数满足,ai^bi = x. 析:暴力枚举就行,n的复杂度. 代码如下: #pragma comment(linker, "/STACK:1024000000 ...

  2. 2014牡丹江网络赛ZOJPretty Poem(暴力枚举)

    /* 将给定的一个字符串分解成ABABA 或者 ABABCAB的形式! 思路:暴力枚举A, B, C串! */ 1 #include<iostream> #include<cstri ...

  3. HNU 12886 Cracking the Safe(暴力枚举)

    题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12886&courseid=274 解题报告:输入4个数 ...

  4. 51nod 1116 K进制下的大数 (暴力枚举)

    题目链接 题意:中文题. 题解:暴力枚举. #include <iostream> #include <cstring> using namespace std; ; ; ch ...

  5. Codeforces Round #349 (Div. 1) B. World Tour 最短路+暴力枚举

    题目链接: http://www.codeforces.com/contest/666/problem/B 题意: 给你n个城市,m条单向边,求通过最短路径访问四个不同的点能获得的最大距离,答案输出一 ...

  6. bzoj 1028 暴力枚举判断

    昨天梦到这道题了,所以一定要A掉(其实梦到了3道,有两道记不清了) 暴力枚举等的是哪张牌,将是哪张牌,然后贪心的判断就行了. 对于一个状态判断是否为胡牌,1-n扫一遍,然后对于每个牌,先mod 3, ...

  7. POJ-3187 Backward Digit Sums (暴力枚举)

    http://poj.org/problem?id=3187 给定一个个数n和sum,让你求原始序列,如果有多个输出字典序最小的. 暴力枚举题,枚举生成的每一个全排列,符合即退出. dfs版: #in ...

  8. hihoCoder #1179 : 永恒游戏 (暴力枚举)

    题意: 给出一个有n个点的无向图,每个点上有石头数个,现在的游戏规则是,设置某个点A的度数为d,如果A点的石子数大于等于d,则可以从A点给每个邻接点发一个石子.如果游戏可以玩10万次以上,输出INF, ...

  9. CCF 201312-4 有趣的数 (数位DP, 状压DP, 组合数学+暴力枚举, 推公式, 矩阵快速幂)

    问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次. 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前. 3. 最高 ...

随机推荐

  1. ajax跨域POST时执行OPTIONS请求服务端返回403forbidden的解决方法

    ajax访问服务端restful api时,由于contentType类型的原因,浏览器会先发送OPTIONS请求. 本人服务端用的是spring mvc框架,web服务器用的是tomcat的,以下给 ...

  2. shp系列(三)——利用C++进行DBF文件的读(打开)

    1.DBF文件要点 DBF文件又叫属性文件,也叫dBASE文件,文件后缀是.dbf,实际上ArcGIS打开后的属性表就是DBF的信息.DBF文件遵循以下几个条件: 每个要素在表中必须要包含一个与之相对 ...

  3. 【React Natvie】React-native-swiper的安装和配置【ES6】

    react-native-swiper轮播图,是我们开发中特别常见的效果,首先感谢编写react-native-swiper的大神,让我们方便了很多.这个框架主要是用来做轮播图,焦点图等,内置了各种样 ...

  4. codeforces 708ALetter Cyclic Shift

    2019-05-18 09:51:19 加油,加油,fightting !!! https://www.cnblogs.com/ECJTUACM-873284962/p/6375011.html 全为 ...

  5. Java基础6一面向对象

    面向对象的编程思想:是以事物的整体的为基本单位,从事物的属性和行为两个方面进行描述. 特点: Java来源于生活服务于生活 用面向对象的思想能够接近正常的思维方式. 面向对象语言中有设计模式一说. 在 ...

  6. Linux od与hexdump命令

    od命令:以指定格式输出文件内容常用格式:od -Ax -tx1 filename直接格式:od filename 等价 od -o filename语法:od [-abcdfsiloxv] [-An ...

  7. hibernate dao 公共方法

    package com.dao.impl; import java.lang.reflect.ParameterizedType; import java.util.Collection; impor ...

  8. GEF入门笔记

    最近项目中需要用到Eclipse GEF框架进行画图,故将平时学习笔记更新到博客中,便于查阅 自己画的一个GEF基本结构     最基本流程 1.创建model(包括数据域.在界面中的布局.图片索引等 ...

  9. mac 下安装 mariadb

    通过brew 安装: brew install mariadb 初始化数据库 cd /usr/local/Cellar/mariadb/10.0.10/scripts mysql_install_db ...

  10. 关于XML学习

    XML为知识构架存储语言: http://www.w3school.com.cn/xml/xml_tree.asp 语义网:为计算机构建一个系统的概念网络模型是计算机理解概念和机间信息交流的途径:XM ...