sg函数打表的基础应用,第一道ac的sg函数打表题纪念下,直接上代码:

hdu1536题目连接

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define maxn 100
using namespace std;
#define N 10000
int k,visit[N],f[N],sg[N],nu;
void getsg(int n)
{
int i,j;
//memset(sg,0,sizeof(sg));
for(i=;i<=n;i++)
{
//memset(visit,0,sizeof(visit));
for(j=;j<=;j++)
visit[j]=;
for(j=;j<nu;j++)
if(i>=f[j])visit[sg[i-f[j]]]=;
else break;
for(j=;j<=n;j++)
{
if(!visit[j])
{
sg[i]=j;
break;
}
}
}
}
int main()
{
int i,j,ans,n,m;
while(scanf("%d",&nu)&&nu)
{
for(i=;i<nu;i++)
scanf("%d",&f[i]);
sort(f,f+nu);
scanf("%d",&k);
getsg(); while(k--)
{
ans=;
scanf("%d",&m); for(i=;i<=m;i++)
{
scanf("%d",&n);
ans^=sg[n];
}
if(ans==)
printf("L");
else
printf("W"); }
printf("\n");
}
return ;
}

hdu1536Nim的更多相关文章

随机推荐

  1. 使用axis2访问webservice(webserivice基于.net平台实现)

    webservice url=http://10.90.11.240:8081/ExceptionWebService.asmx?WSDL: 下载axis2组件,解压,进入bin目录,通过命令wsdl ...

  2. Oracal的Lpad函数

    lpad函数是Oracle数据库函数,lpad函数从左边对字符串使用指定的字符进行填充.从其字面意思也可以理解,l是left的简写,pad是填充的意思,所以lpad就是从左边填充的意思. 语法格式如下 ...

  3. .NET程序集1

    谈谈.NET程序集(一) 谈谈.NET程序集(一) The Assembly in .NET by 唐小崇 http://www.cnblogs.com/tangchong 在.NET出现之前, Wi ...

  4. Android Jni引用第三方库

    在jni下新建文件夹(jniLib)用来存放第三方so库: 将so拷贝到jniLib下,新建一个Android.mk文件: LOCAL_PATH:= $(call my-dir) include $( ...

  5. Android_NDK问题:APP_BUILD_SCRIPT points to an unknown file: <project_path>/jni/Android.mk

    问题详情: Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: <path>/jni/Android.mk ...: ...

  6. c# datagridview 设置某行不可见解决办法

    [前提]datagridview与数据库绑定,需要单独设置某行或者某个单元格不可见. [问题分析]直接用this.dataGridCiew1.Rows[0].Visible = false;不可行,会 ...

  7. hdu1043-素数回文

    http://acm.hdu.edu.cn/showproblem.php?pid=1431 整体思想可以理解为打表,可以通过如下办法打表(但是相对比较麻烦),还可以直接使用数组,将所有数据直接存储进 ...

  8. java.io.IOException: Unable to open sync connection!的解决方案

    在学习Android的时候,经常是使用手机调试程序,很方便,后来 在使用手机调试程序的时候出现了 [2012-03-08 11:27:43 - Tea_marsListActivity] ------ ...

  9. Objective-C之run loop详解

    Objective-C之run loop详解 做了一年多的IOS开发,对IOS和Objective-C深层次的了解还十分有限,大多还停留在会用API的级别,这是件挺可悲的事情.想学好一门语言还是需要深 ...

  10. C/C++ 内存对齐

    一.什么是对齐,以及为什么要对齐: 1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问, ...