hdu 4664 Triangulation(题意已在讨论版中说明)
题意:
给定n个平面(平面之间相互独立),每个平面上有一些点,并且构成凸集,C和D轮流选一个平面连接两个点画线段,并保证线段之间除了端点之外没有其它交点,当平面上出现一个完整的三角形之后此平面就不能继续画线。最早无法画线的人输。输出赢的人。
解法:
因为n个平面是独立的,所以sg函数满足异或的关系。对于每一个平面,求sg值。对于n个点,连上一条线可以分成 i 和 n-2-i 两个独立的部分。所以该点的子状态为sg[i]^sg[n-i-2](0<=i<=n-2)。然后可以计算该点的sg值。打表发现n>68之后会出现长度为34的循环,所以打个34×3的表就可以了。sg函数是个好东西啊!
递归搜索求SG函数:
#include<stdio.h>
#include<string.h>
#define N 1000
int sg[N];
int GetSG(int k)
{
if(sg[k]!=-)return sg[k];
bool mex[N]={};
for(int i = ; i <= k-; i++)
{
sg[i] = GetSG(i);
sg[k-i-] = GetSG(k-i-);
mex[sg[i]^sg[k-i-]]=;
}
int i=;
while(mex[i])i++;
return sg[k]=i;
}
int main()
{
int i,j;
int t,n,x,ans;
memset(sg,-,sizeof(sg));
GetSG();
scanf("%d",&t);
while(t--)
{
ans=;
scanf("%d",&n);
for(i=;i<n;i++)
{
scanf("%d",&x);
if(x>)ans^=sg[(x-)%+];
else ans^=sg[x];
}
if(ans)printf("Carol\n");
else printf("Dave\n");
}
return ;
}
循环求SG
#include<stdio.h>
#include<string.h>
#define N 1000
int sg[N];
int hash[N];
void GetSG(int n)
{
int i,j,k;
sg[]=;
sg[]=;
for(i=;i<=n;i++)
{
memset(hash,,sizeof(hash));
for(j=;i>=+j&&j<=i/;j++)
hash[sg[j]^sg[i--j]]=;
for(j=;j<=n;j++)
{
if(!hash[j])
{
sg[i]=j;
break;
}
}
}
}
int main()
{
int i,j;
int t,n,x,ans;
GetSG();//改成GetSG(90);就WA了,奇葩错误啊
/*
GetSG(200);
for(i=0;i<=200;i++)
{
printf("%d ",sg[i]);
if(i>=52&&(i-52)%34==0)printf("\n");//if(i==52)printf("\n");
}*/
scanf("%d",&t);
while(t--)
{
ans=;
scanf("%d",&n);
for(i=;i<n;i++)
{
scanf("%d",&x);
if(x>)ans^=sg[(x-)%+];
else ans^=sg[x];
/*if(x<86) ans^=sg[x];
else ans^=sg[x%34+68];*/ }
if(ans)printf("Carol\n");
else printf("Dave\n");
}
return ;
}
hdu 4664 Triangulation(题意已在讨论版中说明)的更多相关文章
- HDU 4664 Triangulation(SG函数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4664 题意:给出一个n个点的凸包(不存在三点共线).每次可以选择两个点连线,但是任意两条线只能在顶点处 ...
- HDU 4664 Triangulation(2013多校6 1010题,博弈)
Triangulation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- hdu 4664 Triangulation 博弈论
看到这题时,当时还不会做,也没搞懂sg函数,于是狠狠的钻研了下博弈论,渐渐的知道了sg函数…… 现在在来做这题就很容易了,1A 打表容易发现在80左右的时候就出现循环节了 代码如下: #include ...
- HDU 4664 Triangulation【博弈论】
一个平面上有n个点(一个凸多边形的顶点),每次可以连接一个平面上的两个点(不能和已经连接的边相交),如果平面上已经出现了一个三角形,则不能在这个平面上继续连接边了. 现在总共有N个平面,每个平面上都有 ...
- SharePoint REST 服务获取讨论版问题
前言 最近,有这么个需求,需要获取讨论版里的问题,然后汇总,这里就考虑用REST服务了. 1.我们先创建这么一个讨论版列表,然后添加一些问题,如下图: 2.然后需要开发REST服务代码了,如下图: 3 ...
- 使用IDEA运行项目时提示:Warning:java: 源值1.5已过时, 将在未来所有发行版中删除
如图 在使用IDEA运行项目时,在下方提示:Warning:java: 源值1.5已过时, 将在未来所有发行版中删除 这是因为JDK版本问题 解决方法如下:左上角 file ——> Projec ...
- 《深入理解Java虚拟机》第2版挖的坑终于在第3版中被R大填平了
这是why技术的第34篇原创文章 本周还是在家办公的一周,上面的图就是我在家的工位,和上周<Dubbo Cluster集群那点你不知道的事>这篇文章里面的第一张图片比起来,升级了显示器支撑 ...
- 动态链接库中分配内存引起的问题-- windows已在XX.exe中触发一个断点
动态链接库中分配内存引起的 本文主要是探讨关于在动态链接库分配的内存在主程序中释放所产生的问题,该问题是我在刚做的PJP工程中所遇到的,由于刚碰到之时感动比较诡异(这也是学识不够所致),所以将它写下来 ...
- Windows 10 开发人员预览版中的新增功能(转自 IT之家)
Windows 10 开发人员预览版中的新增功能 在Win10预览版中安装工具与SDK后,即可着手创建Windows通用应用或先浏览目前的环境与此前相比都发生了什么变化. 应用建模 文件资源管理器: ...
随机推荐
- sharepoint 2010 切换域
前提: 现在已经有一个sharepoint 2010的环境,当前域为contosoA.com,有个需求需要将这个域切换到域contosoB.com.下面是成功操作的步骤. 1.数据最重要 备份所有数据 ...
- 网络笔记02数据解析 -1-JSON解析
1.JSON解析 1.JSON介绍 JSON是最网络传输数据最为广泛的数据格式,没有之一,出身草根,是Javascript的子集,专门负责描述数据格式.Javascript是网页开发的一种脚本语言,和 ...
- Delphi 路径相关函数
IncludeTrailingPathDelimiter(const S: string): string; 功能 返回包括最后路径分隔符 说明 最后一个字符是路径分隔符则不变;否则加上一个路径分隔符 ...
- cocos2dx中帧循环的伪代码实现
1.在游戏开发中,帧率很大程度上体现了游戏的流畅度,帧循环是游戏中一个很重要的概念 2.下面用伪代码实现了cocos2dx中的帧循环 /*main函数调用*/ CCApplication::share ...
- “我爱淘”冲刺阶段Scrum站立会议9
完成任务: 完成了webservice的配置与测试. 计划任务: 可以通过webservice将数据库中的内容解析出来,通过查询可以得到想要的内容. 遇到问题: 服务器已经配好,,也已经测试成功,不过 ...
- j2SE基回顾(一)
1. 九种基本数据类型的大小,以及他们的封装类. 2. Switch能否用string做参数? 3. equals与==的区别. 4. Object有哪些公用方法? Object是所有类的父类,任何类 ...
- Android基础整理之四大组件Activity
最近准备系统的重新整理复习一下Android的各方面的知识,本着知识分享的原则,我就把梳理过程中一些东西给记录下来,权当一个学习笔记吧. 下面步入正题..... 什么是Activity Activit ...
- Portion of class Throwable’s inheritance hierarchy
- appium for windows 环境搭建
服务环境: 1 安装Nodejs 下载nodejs安装包(http://nodejs.org/download/)安装 测试安装是否成功:运行cmd,输入node -v 2 安装android的SKD ...
- Codeforces Round #254 (Div. 1) C. DZY Loves Colors 线段树
题目链接: http://codeforces.com/problemset/problem/444/C J. DZY Loves Colors time limit per test:2 secon ...