这个题目很有趣,有博弈知识,又有一点智商题的感觉。

题意为给你一段长为n的的线段。

两个游戏者轮流在一段长为2,未被染色的线段上涂色。

无法涂色的游戏者输。

题目有点灵活。关键在于怎么得到Sg函数值呢?

其实是这样的,对于一个长度为n的线段,我们枚举中间可能的连续的两个单位长度进行染色,然后判断是否存在一种染色使得染色后的状态为必败态就可以了。

不过要注意哦,染色后,原来的一段会变为两端(如果染色在端点,可以视其中一段为0),这样接下来的两端就需要分别染色了,所以根据博弈论的只是我们就知道,接下来的Sg函数值就是这两个长度所对应的Sg函数值的异或哦。然后用传统的Sg函数的Mex求法就可以了。

 #include <iostream>
#include <cstdio>
#include <cstring>
#define maxn 55
using namespace std; int f[maxn],n,m,k;
bool b[maxn]; void getF()
{
f[]=;
f[]=f[]=;
for (int i=; i<maxn; i++)
{
memset(b,false,sizeof b);
for (int j=; j<=i-; j++)
{
b[f[j-]^f[i-j-]]=true;
}
for (int j=; ;j++)
if (!b[j])
{
f[i]=j;
break;
}
}
} int main()
{
getF();
while (scanf("%d",&n)!=EOF)
{
m=;
while (n--) scanf("%d",&k),m^=f[k];
if (m) printf("Yes\n");
else printf("No\n");
}
return ;
}

ZOJ2083_Win the Game的更多相关文章

随机推荐

  1. su的使用与退出

    偶尔用回到ubuntu系统,想切换到su,总是显示不成功,也许是初次使用,即需要设定一下: 使用sudo $:sudo passwd 系统提示输入密码,即安装时的用户密码,然后,系统提示输入两次新密码 ...

  2. HDU 6086 Rikka with String

    Rikka with String http://acm.hdu.edu.cn/showproblem.php?pid=6086 题意: 求一个长度为2L的,包含所给定的n的串,并且满足非对称. 分析 ...

  3. 解决 idea template jsp模板中使用自定义路径 模板不显示问题

    ${} 是一个模板中的关键字,所以建立时需要用 \ 注释即可正常显示  ${APP_PATH}

  4. Appium + java截图方法

    public static void takeScreenShot(AndroidDriver<WebElement> driver) { File screenShotFile = dr ...

  5. 假回溯-uva140带宽

    题目链接:https://vjudge.net/problem/UVA-140 题解:这道题利用全排函数即可解决,但是这道题技巧性强,稍微不注意就会超时,一开始没有想起全排函数,自己写回溯全排超时了, ...

  6. socket编程为什么需要htonl(), ntohl(), ntohs(),htons() 函数-------转载

    在C/C++写网络程序的时候,往往会遇到字节的网络顺序和主机顺序的问题.这是就可能用到htons(), ntohl(), ntohs(),htons()这4个函数. 网络字节顺序与本地字节顺序之间的转 ...

  7. 获取一个数组里面第K大的元素

    如何在O(n)内获取一个数组比如{9, 1, 2, 8, 7, 3, 6, 4, 3, 5, 0, 9, 19, 39, 25, 34, 17, 24, 23, 34, 20}里面第K大的元素呢? 我 ...

  8. 《疯狂前端开发讲义jQuery+Angular+Bootstrap前端开发实践》学习笔记

    <疯狂前端开发讲义jQuery+Angular+Bootstrap前端开发实践>学习笔记 二〇一九年二月十三日星期三2时28分54秒 前提:本书适合有初步HTML.CSS.JavaScri ...

  9. 关于购买Redis服务器:腾讯云、阿里云还是华为云?

    个人分类: redis使用 编辑 新年伊始,很多商家都开始进行新年产品大促销,在分布是缓存Redis领域,几家大公司也是打得如火如荼,各有千秋啊. 现在市场上比较有口碑的商家有腾讯云.阿里云.华为云三 ...

  10. .net mvc5 不同view()的视图 代码

    public class Test { public int id { set; get; } public string name { set; get; } } public ActionResu ...