hdu_1536_S-Nim(DFS_SG博弈)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1536
题意:首先输入K ,表示一个集合的大小 , 之后输入集合, 表示对于这对石子只能去这个集合中的元素的个数,之后输入 一个m, 表示接下来对于这个集合要进行m次询问, 之后m行 ,每行输入一个n ,表示有n个堆 , 每堆有n1个石子, 问这一行所表示的状态是赢还是输, 如果赢输入W否则L。
题解:sg打表会超时,只有在线算sg了,就是DFS_SG
#include<cstdio>
#include<algorithm>
#define F(i,a,b) for(int i=a;i<=b;i++)
using namespace std; const int N=;
int sg[N],f[],m,nn,ans,tp; int dfs_SG(int x,int *s){
if(sg[x]!=-)return sg[x];
bool v[];
F(i,,)v[i]=;
F(i,,s[])if(x>=s[i])v[dfs_SG(x-s[i],f)]=;
F(i,,N)if(!v[i]){sg[x]=i;break;}
return sg[x];
} int main(){
while(~scanf("%d",f),f[]){
F(i,,f[])scanf("%d",f+i);
sort(f+,f++f[]);
F(i,,N-)sg[i]=-;
scanf("%d",&m);
while(m--){
scanf("%d",&nn),ans=;
while(nn--)scanf("%d",&tp),ans^=dfs_SG(tp,f);
if(ans)printf("W");
else printf("L");
}
puts("");
}
return ;
}
hdu_1536_S-Nim(DFS_SG博弈)的更多相关文章
- (转)巴氏(bash)威佐夫(Wythoff)尼姆(Nim)博弈之模板
感谢:巴氏(bash)威佐夫(Wythoff)尼姆(Nim)博弈之模板 转自:http://colorfulshark.cn/wordpress/巴氏(bash)威佐夫(wythoff)尼姆(nim) ...
- HDU 5795 A Simple Nim (博弈 打表找规律)
A Simple Nim 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5795 Description Two players take turns ...
- poj 2975 Nim(博弈)
Nim Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5232 Accepted: 2444 Description N ...
- Poj1704:staircase nim【博弈】
题目大意:有一个无限长的一维的棋盘,棋盘上N个格子放置着棋子.两个人轮流操作,每次操作能选择其中一个棋子向左移动,但不能越过其它棋子或者两枚棋子放在同一格中,最后不能操作的人算输,问先手是否必胜? 思 ...
- poj2975 Nim(经典博弈)
Nim Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5866 Accepted: 2777 Description N ...
- Nim游戏博弈(收集完全版)
Nim游戏证明参见: 刘汝佳训练指南P135-写的很酷! 知乎上SimonS关于Nim博弈的回答! Nim游戏的概述: 还记得这个游戏吗? 给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠, ...
- HDU 5795:A Simple Nim(博弈)
http://acm.hdu.edu.cn/showproblem.php?pid=5795 A Simple Nim Problem Description Two players take t ...
- (转载)Nim游戏博弈(收集完全版)
Nim游戏的概述: 还记得这个游戏吗?给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠,但不能在两列中取.最后拿光珍珠的人输.后来,在一份资料上看到,这种游戏称为“拈(Nim)”.据说,它源 ...
- Nim游戏博弈
Nim游戏的概述: 还记得这个游戏吗? 给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠,但不能在两列中取.最后拿光珍珠的人输. 后来,在一份资料上看到,这种游戏称为"拈(Nim) ...
随机推荐
- 拦截QWebView弹出窗口
环境 系统:win7 64位旗舰版 软件:VS2013.QT5.5.1-32位 概述 当网页打开一个新的窗口时,我们有时候需要根据URL地址来判断弹出窗口是否合理,如果合理则弹出新窗口,否则不弹出.本 ...
- openstack添加数据库
输入:neutron-db-manage revision -m "表的名称" neutron-db-manage upgrade head 如果遇到版本名找不到的情 ...
- Hive中频繁报警的问题
在使用Hive的过程中,是不是会在shell中报一堆警告,虽然说不影响正常使用,但是看着很烦人,而且指不定会影响数据的准确性和运行的稳定性. 警告的内容如下: Tue Aug :: CST WARN: ...
- Sublime Text 3中配置运行Java
1.安装JDK并配置环境变量 2.在JDK的bin目录下新建runJava.bat文件,右键选编辑,复制粘贴如下代码并保存: @echo off cd %~dp1 echo Compiling %~n ...
- JavaScript 属性操作
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...
- sqlalchemy 映射的小例子
1.多张表映射到一个类 import pandas as pdfrom settings import DATABASESfrom sqlalchemy import create_engineimp ...
- 一些Wifi破解姿势
wlan0:无线网卡设备 BSSID/AP's MAC:目标路由器的mac地址 Client's MAC:连接到此wifi客户端的mac地址 ESSID:这个无线的名字 大致思路: 获取bssid和e ...
- kali自动化清理缓存和日志
前几天发现kali无法正常开机,启动盘启动进去之后, 发现/var/log/目录下的日志文件太大把硬盘占满了,于是乎... 文件主要是这三个: kern.log : 包含内核产生的日志,有助于在定 ...
- Microsoft Visual Studio 2015 python 安装 mysql-python 出错解决
Microsoft Visual Studio 2015 安装 python 连接包 mysql-python出错 第一种 pip安装方式 安装Microsoft Visual C++ Compi ...
- 【LeetCode】459. Repeated Substring Pattern
Given a non-empty string check if it can be constructed by taking a substring of it and appending mu ...