【POJ】【2960】S-Nim
2024-09-13 18:31:19
博弈论
这题跟 BZOJ 1874 取石子游戏 差不多
先暴力求出10000以内的SG函数(利用定义来求即可)
然后每次询问直接将SG值异或起来即可……
Source Code
Problem: User: sdfzyhy
Memory: 444K Time: 313MS
Language: G++ Result: Accepted Source Code //POJ 2960
#include<cstdio>
#include<cstring>
#define F(i,j,n) for(int i=j;i<=n;++i)
int getint(){
int v=,sign=; char ch=getchar();
while(ch<''||ch>''){ if (ch=='-') sign=-; ch=getchar();}
while(ch>=''&&ch<=''){ v=v*+ch-''; ch=getchar();}
return v*=sign;
}
const int N=;
/******************tamplate*********************/
int f[N],s[];
bool mark[N];
void calsg(int n){
f[]=;
F(i,,){
memset(mark,,sizeof mark);
F(j,,n) if (i-s[j]>=)
mark[f[i-s[j]]]=;
F(j,,i) if(!mark[j]){ f[i]=j;break;}
}
}
int main(){
int n,m,k;
while(scanf("%d",&n)!=EOF && n){
F(i,,n) s[i]=getint();
m=getint();
calsg(n);
F(i,,m){
k=getint();
int ans=;
F(j,,k) ans^=f[getint()];
printf(ans ? "W" : "L");
}
printf("\n");
}
return ;
}
最新文章
- ActiveMQ
- Java RMI之HelloWorld篇
- request和session作用域的意义
- boost解析json(2)
- 【Netty学习】 ChannelInitializer 学习
- (转)可收缩、扩展的TextView
- db.class的实现类
- bzoj1965
- 微软2016校园招聘4月在线笔试 ABC
- <;转载>;构造函数与拷贝构造函数
- SQL Server如何固定执行计划
- 语句的分号、逗号和函数中var的使用
- Linux_服务器_07_ 将用户设置为管理员
- 洛谷 P1272 解题报告
- Python课程学习总结
- git忽略UserInterfaceState.xcuserstate
- C#的格式化(进制转换|位运算)
- QtTest模块出现控制台的原因与方案
- Image控件Stretch属性
- js读取csv文件为json显示