hdu 1536 S-Nim(sg函数模板)
转载自:http://blog.csdn.net/sr_19930829/article/details/23446173
解题思路:
这个题折腾了两三天,参考了两个模板,在这之间折腾过来折腾过去,终于把用法和需要注意的地方弄清楚了,汗。注意的是: bool类型的数组比int类型的数组快,不超时与超时的区别,在sg组合博弈时,只能在(a1,a2,a3,a4)中取,要特别注意这里面的数字是否是有序的,这个特别重要,下面贴出的两个模板对应了两种情况。最后,大数据输入还得用scanf。。
模板1(该模板注意的是一定要把 f 数组中的数字从小到大排序):
const int N=;//N为所有堆最多石子的数量
int f[],sg[N];//f[]用来保存只能拿多少个,sg[]来保存SG值
bool hash[N];//mex{}
void sg_solve(int t,int N)//t指f[]中的个数
{
int i,j;
memset(sg,,sizeof(sg));
for(i=;i<=N;i++)
{
memset(hash,,sizeof(hash));
for(j=;j<=t&&f[j]<=i;j++)
{
hash[sg[i-f[j]]]=;
}
for(j=;j<=N;j++)
if(!hash[j])
break;
sg[i] = j;
}
}
模板2(该模板不需要进行排序)
const int N=;//N为所有堆最多石子的数量
int f[],sg[N];//f[]用来保存只能拿多少个,sg[]来保存SG值
bool hash[N];//mex{}
void sg_solve(int t,int N)
{
int i,j;
memset(sg,,sizeof(sg));
for(i=;i<=N;i++)
{
memset(hash,,sizeof(hash));
for(j=;j<=t;j++)
if(i - f[j] >= )
hash[sg[i-f[j]]] = ;
for(j=;j<=N;j++)
if(!hash[j])
break;
sg[i] = j;
}
}
代码(使用第二个模板)
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <string.h>
using namespace std; const int N=;//N为所有堆最多石子的数量
int f[],sg[N];//f[]用来保存只能拿多少个,sg[]来保存SG值
bool hash[N];//mex{}
void sg_solve(int t,int N)
{
int i,j;
memset(sg,,sizeof(sg));
for(i=;i<=N;i++)
{
memset(hash,,sizeof(hash));
for(j=;j<=t;j++)
if(i - f[j] >= )
hash[sg[i-f[j]]] = ;
for(j=;j<=N;j++)
if(!hash[j])
break;
sg[i] = j;
}
} int main()
{
int k,m,l,num,i,j;
while(scanf("%d",&k),k)
{
for(i=;i<=k;i++)
scanf("%d",&f[i]);
sg_solve(k,N);
scanf("%d",&m);
string ans="";
for( i=;i<=m;i++)
{
int sum=;
scanf("%d",&l);
for( j=;j<=l;j++)
{
scanf("%d",&num);
sum^=sg[num];
}
if(sum==)
ans+="L";
else
ans+="W";
}
cout<<ans<<endl;
}
return ;
}
hdu 1536 S-Nim(sg函数模板)的更多相关文章
- hdu 1536&&1944 S-Nim sg函数 难度:0
S-Nim Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- hdu 1536 SG函数模板题
S-Nim Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- hdu 3032 Nim or not Nim? sg函数 难度:0
Nim or not Nim? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- hdu 3032 Nim or not Nim? (SG函数博弈+打表找规律)
Nim or not Nim? Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Sub ...
- HDU 1847-Good Luck in CET-4 Everybody!-博弈SG函数模板
Problem Description 大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和Cici都是如此.当然,作为在考场浸润了十几载 ...
- hdu1536&&hdu3023 SG函数模板及其运用
S-Nim Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u Submit Status ...
- SG函数模板(转)
ps:sg[i]为0表示i节点先手必败. 首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数.例如mex{0,1,2,4}=3.me ...
- HDU 5724 Chess(SG函数+状态压缩)
http://acm.split.hdu.edu.cn/showproblem.php?pid=5724 题意: 现在有一个n*20的棋盘,上面有一些棋子,双方每次可以选择一个棋子把它移动到其右边第一 ...
- HDU 5724 Chess(SG函数)
Chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
随机推荐
- Codeforces Round #135 (Div. 2)
A. k-String 统计每个字母出现次数即可. B. Special Offer! Super Price 999 Bourles! 枚举末尾有几个9,注意不要爆掉\(long\ long\)的范 ...
- Performance Analysis Methodology
http://www.brendangregg.com/methodology.html The USE Method: for finding resource bottlenecks The TS ...
- ROM、RAM、DRAM、SRAM和FLASH区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写. ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都 ...
- 解析C#中[],List,Array,ArrayList的区别及应用
[] 是针对特定类型.固定长度的. List 是针对特定类型.任意长度的. Array 是针对任意类型.固定长度的. ArrayList 是针对任意类型.任意长度的. Array 和 ArrayLis ...
- docker 镜像的保存以及导入
docker 镜像的保存 docker save -o davename.tar images docker 镜像的导入 docker import - importname < tar ...
- 移动web 应用开发调试
调试前端页面我一直使用着神器Chrome开发人员工具, 那个方便, 大家都懂的. 但当我们要调试为移动设备设计的Web页面时, 是不是觉得有点力不从心了?平时开发时我们可以一直都是在桌面调试这个页面, ...
- 设置页面不缓存 no-cache
html中设置方法 <head> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <M ...
- Activity和Service绑定
Activity和Service绑定后,可以方便Activity随时调用对应的Service里面的方法 绑定代码如下 Activity类代码: <span style="font-si ...
- JavaScript理解
Javascript,是从类型(type)开始,这些类型在JS中分为两大类:原生类型与对象类型.原生类型包括:number,string, boolean, null, undefined:剩下的非原 ...
- mongodb 最佳实践
MongoDB功能预览:http://pan.baidu.com/s/1k2UfW MongoDB在赶集网的应用:http://pan.baidu.com/s/1bngxgLp MongoDB在京东的 ...