hdu 1536 S-Nim (sg)
http://acm.hdu.edu.cn/showproblem.php?pid=1536
计算sg值。
注意两个地方:
1. s是无序的。
2. 不能对n=10000打表,因为能取的个数是给定的,会有打不到的点。
code:
#include<cstring>
int s[101], sg[10001], k ;
int mex(int n){
if(sg[n]!=-1) return sg[n] ;
bool vis[101] ;//n最多有100个后继
int i ;
memset(vis, false, sizeof(vis)) ;
for(i=0; i<k; i++){
if(s[i]>n) continue ;//不能break, s无序
sg[n-s[i]] = mex(n-s[i]) ;
vis[sg[n-s[i]]] = true ;
}
for(i=0; vis[i]; i++) ;
sg[n] = i ;
return sg[n] ;
}
int main(){
int m, l, i, j, t, sum ;
while(~scanf("%d", &k)&&k){
for(i=0; i<k; i++)
scanf("%d", &s[i]) ;
memset(sg, -1, sizeof(sg)) ;
sg[0] = 0 ;
//mex(10000) ;//不能打表,存在打不到的点
scanf("%d", &m) ;
while(m--){
scanf("%d", &l) ;
sum = 0 ;
while(l--){
scanf("%d", &t) ;
sum ^= mex(t) ;
}
if(sum) printf("W") ;
else printf("L") ;
}
printf("\n") ;
}
return 0 ;}
转载于:https://www.cnblogs.com/xiaolongchase/archive/2012/05/04/2483243.html
hdu 1536 S-Nim (sg)相关推荐
- S-Nim (HDU 1536)组合博弈SG多组游戏
S-Nim 题目链接 Problem Description Arthur and his sister Caroll have been playing a game called Nim for ...
- HDU 1536 求解SG函数
1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 #include<set&g ...
- HDU - 1536 S-Nim(sg函数)
题目链接:点击查看 题目大意:根据尼姆博弈的规则,现在更改为每次只能从任意一堆中取走规定集合中的数目,问每次游戏先手必胜还是必败 题目分析:sg打表模板题,这里挂一个大牛的博客,讲得是尼姆博弈和sg函 ...
- hdu 1907 & hdu 2509(Nim博弈)
其实我都是一直叫它(尼美博弈) 模型: 给你N堆,每堆数目是确定的(输入),每次从一堆取一个,多者不限,最多取完一堆.有两人AB,A先手,规定最后一个取完者赢(输).问先后手哪个赢(输).(假定两个人 ...
- hdu 1536(博弈)
传送门:S-Nim 题意:给n个数的集合s, 再给m 组数据,每组表示 k 堆石子,每次可以取的个数只能是集合s中的数量.问先手胜还是输? 分析:sg函数的经典运用,先预处理出所有数量为0~10000 ...
- HDU 2516 (Fabonacci Nim) 取石子游戏
这道题的结论就是,石子的个数为斐波那契数列某一项的时候,先手必败:否则,先手必胜. 结论很简单,但是证明却不是特别容易.找了好几篇博客,发现不一样的也就两篇,但是这两篇给的证明感觉证得不清不楚的,没看 ...
- 博弈论题目总结(二)——SG组合游戏及变形
SG函数 为了更一般化博弈问题,我们引入SG函数 SG函数有如下性质: 1.如果某个状态SG函数值为0,则它后继的每个状态SG函数值都不为0 2.如果某个状态SG函数值不为0,则它至少存在一个后继的状 ...
- ACM——博弈论 (以SG的求法为主)
HDU 1847Good Luck in CET-4 Everybody! n个石子取2的次幂个,0为terminal position P/N分析和求SG值方法都可以,找规律的话模3余0也能过 主要 ...
- 【博弈论】博弈论题单题解
会不断更新的(咕咕咕) 题目难度大致满足非降性 博弈论真是深坑啊,填不动了,还有Nim积.Every-SG游戏等等等等很多题型还不会,先去学别的了 涉及知识: SG函数及SG定理:传送门 博弈论知识总 ...
- 博弈论探讨及题目总结
转载自爱神博客:http://blog.csdn.net/acm_cxlove/article/details/7854526 首先当然要献上一些非常好的学习资料: 基础博弈的小结:http://bl ...
最新文章
- LeetCode: 150:逆波兰表示法求值。
- 使用OpenSSL实现证书操作
- uaredirect.js
- showModalDialog弹窗
- 文献记录(part84)--A nearest neighbor-based active learning method and its application to time ...
- IntegerCache的妙用和陷阱
- java写的一个zip压缩源码错误分析
- 判断是否是日期格式_Java8新特性之新世间与日期
- Hibernate-04-实体编写规范
- The servlet name already exists.解决方法
- 杭电多校HDU 6656 Kejin Player(概率DP)题解
- C++ 指针二维数组, C++二维指针数组笔记
- 高质量Python书籍推荐丨Python学习手册(第5版)
- 《学生信息管理系统》论文
- 搭建邮件系统与使用第三方邮件发送平台优劣详解
- 生日祝福html_祝我家的猪,生日快乐 | 告白墙第21期
- Log4j2 日志 依赖 jar包 缺失 导致启动报错 解决方法
- 什么是大数据? 大数据项目的流程
- 泰康人寿java开发待遇怎么样_宋晓伟-泰康人寿-5年Java开发高级工程师-猿急送
- 腾讯云服务器备案完整流程 40天备案的血与泪
热门文章
- 哨兵1号(Sentinel-1)与陆地探测1号(L-SAR)对比
- PHP全文索引 讯搜xunsearch
- ImageLoader的简单分析(二)
- css 布局什么时候用百分比_用手机拍视频学会这个布局方法,拍什么都好看
- 一大早,分享一个好消息
- 蓝字冲销是什么意思_会计做帐中用红字和蓝字代表的意思是什么
- php把buffer转化为图片_干货:如何提升转化率?5个优化转化率的tips
- gpio能测Linux启动时间,linux – 如何自动测量新建图像的启动时间...
- getvalue参数计数不匹配_数据人:不懂业务,分析就仅仅只是提数
- linux线程组和进程区别,Linux中进程和线程之间的区别