博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva 1378 - A Funny Stone Game sg博弈
阅读量:7123 次
发布时间:2019-06-28

本文共 1345 字,大约阅读时间需要 4 分钟。

题意:David 玩一个石子游戏。

游戏中,有n堆石子,被编号为0..n-1。两名玩家轮流取石子。 每一轮游戏。每名玩家选取3堆石子i,j,k(i<j,j<=k,且至少有一枚石子在第i堆石子中)。 从i中取出一枚石子,并向j。k中各放入一枚石子(假设j=k则向k中放入2颗石子)。

最 先不能取石子的人输。 石子堆的个数不会超过23。每一堆石子不超过1000个。

解法:看上去是将石子都往右移,直到全部都到了n-1堆不能移为止。

首先是考虑每堆石子事实上是独立的一个子游戏,堆与堆之间不相互影响。

然后就是个数是偶数的对不会影响必胜必败态,必败态无法通过移动偶数堆得石子来扭转局面。由于必胜者仅仅需对称操作就可以。所以每堆石子就成了01的状态,sg值仅仅是跟位置有关系了。预处理出每一个位置的sg值就可以。计算第一个可行步骤时候。暴力推断ijk就可以。

代码:

/******************************************************* @author:xiefubao*******************************************************/#pragma comment(linker, "/STACK:102400000,102400000")#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//freopen ("in.txt" , "r" , stdin);using namespace std;#define eps 1e-8#define zero(_) (_<=eps)const double pi=acos(-1.0);typedef long long LL;const int Max=100010;const LL INF=0x3FFFFFFF;int sg[100];bool rem[100];int n;void init(){ sg[0]=0; for(int i=1; i<=25; i++) { memset(rem,0,sizeof rem); for(int j=i-1; j>=0; j--) for(int k=j; k>=0; k--) { rem[sg[j]^sg[k]]=1; } int t=0; while(rem[t]) t++; sg[i]=t; }}bool help[100];//0 1 2 4 7 8 11 13 14 16 19 21 22 25 26 28 31 32 35 37 38 41 42int main(){ init(); int kk=1; while(cin>>n&&n) { memset(help,0,sizeof help); int ans=0; for(int i=0; i

转载地址:http://hcael.baihongyu.com/

你可能感兴趣的文章
美国明尼苏达州大学研制出仿生眼原型
查看>>
一学就会的django项目服务器部署nginx-uwsgi-django/build
查看>>
Aruba:物联网有望在2019年大规模应用
查看>>
区块链应用场景:征信和权属管理
查看>>
邱剑 | 美团云容器实践之路
查看>>
js实现限制输入框只能输入数字
查看>>
营销人员为何要读《笑傲江湖》?
查看>>
《Microduino实战》——3.5 I/O操作——现学现用
查看>>
《网页设计与前端开发 Dreamweaver+Flash+Photoshop+HTML+CSS+JavaScript 从入门到精通》—— 1.2 网页的基本构成元素...
查看>>
《21天学通Java(第6版)》—— 1.1 Java语言
查看>>
《图数据库》——第 2 章 关联数据的存储选择
查看>>
《SQL学习指南(第2版)(修订版)》———1.4 内容前瞻
查看>>
使用Redis作为一个LRU缓存
查看>>
《易学C++(第2版)》——1.7 C++学习的常见问题
查看>>
《Google软件测试之道》—第1章1.3节组织结构
查看>>
Processing编程学习指南3.1 程序的运行流程
查看>>
ROS机器人程序设计(原书第2版)2.2 理解ROS计算图级
查看>>
Predicate和Consumer接口– Java 8中java.util.function包下的接口
查看>>
前端常见兼容问题系列5:¥符号在部分Android APP的WebView中不见了
查看>>
基于Reactjs实现webapp(加精)
查看>>