LA 5059 (找规律 SG函数) Playing With Stones
题意:
有n堆石子,两个人轮流取,每次只能取一堆的至少一个至多一半石子,直到不能取为止。
判断先手是否必胜。
分析:
本题的关键就是求SG函数,可是直接分析又不太好分析,于是乎找规律。
经过一番“巧妙”的分析,有这样一个规律:
如果n是偶数,SG(n) = n / 2;
如果n是奇数,SG(n) = SG(n / 2);
这道题的意义不在于规律是什么,而是要自己能够写出求SG函数值的代码。顺便再体会一下mex(S)的含义。
#include <cstring> const int maxn = ;
int SG[maxn], vis[maxn]; int main()
{
SG[] = ;
for(int i = ; i <= ; i++)
{
memset(vis, , sizeof(vis));
for(int j = ; j * <= i; j++) vis[SG[i-j]] = ;
for(int j = ; ; j++) if(!vis[j])
{
SG[i] = j;
break;
}
printf("%d ", SG[i]);
} return ;
}
找规律
#include <cstdio> long long SG(long long n)
{
if(n & ) return SG(n >> );
else return (n >> );
} int main()
{
//freopen("in.txt", "r", stdin);
int T;
scanf("%d", &T);
while(T--)
{
int n;
scanf("%d", &n);
long long a, x = ;
while(n--)
{
scanf("%lld", &a);
x ^= SG(a);
}
printf("%s\n", x ? "YES" : "NO");
} return ;
}
AC
LA 5059 (找规律 SG函数) Playing With Stones的更多相关文章
- LA 2889 (找规律) Palindrome Numbers
输出第n个回文数. 规律就是一位和两位的回文数各有9个,三位四位的回文数各有90个,以此类推. 给出n,可以先判定一下第n个回文数的位数,然后后面也不难推,但是有很多细节需要注意. #include ...
- C基础之递归(思想很重要,学会找规律)
递归思想的条件:1.函数自己调用自己 2.函数必须有一个固定的返回值(如果没有这个条件会发生死循环) ----规律很重要 简单递归题目一: 设计一个函数计算一个整数的n次方,比如2的3次方,就是8 步 ...
- hdu 3032 Nim or not Nim? (SG函数博弈+打表找规律)
Nim or not Nim? Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Sub ...
- hdu 2147 SG函数打表(手写也可以) 找规律
kiki's game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 40000/1000 K (Java/Others) Total ...
- HDU 1517 A Multiplication Game (SG函数找规律)
题意:两个玩家玩一个游戏,从 p = 1,开始,然后依次轮流选择一个2 - 9的数乘以 p,问你谁先凑够 p >= n. 析:找规律,我先打了一下SG函数的表,然后就找到规律了 我找到的是: 1 ...
- bzoj 1228 [SDOI2009]E&D SG函数打表 找规律
题目链接 Description 桌子上有2n 堆石子,编号为1..2n.将第2k-1 堆与第2k 堆(1 ≤ k ≤ n)为同一组.第i堆的石子个数用一个正整数Si表示.一次分割操作指的是,从桌子上 ...
- Educational Codeforces Round 68 (Rated for Div. 2)D(SG函数打表,找规律)
#include<bits/stdc++.h>using namespace std;int sg[1007];int main(){ int t; cin>>t; while ...
- HDU-4664 Triangulation 博弈,SG函数找规律
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4664 题意:一个平面上有n个点(一个凸多边形的顶点),每次可以连接一个平面上的两个点(不能和已经连接的 ...
- bzoj 1228 [SDOI2009]E&D(sg函数,找规律)
Description 小E 与小W 进行一项名为“E&D”游戏.游戏的规则如下:桌子上有2n 堆石子,编号为1..2n.其中,为了方便起见,我们将第2k-1 堆与第2k 堆(1 ≤ k ≤ ...
随机推荐
- C# File
http://msdn.microsoft.com/zh-cn/library/system.io.file(v=vs.110).aspx using System; using System.IO; ...
- 【BZOJ】【3669】【NOI2014】魔法森林
LCT动态维护MST LCT动态维护MST 我们可以枚举a,然后找从1到n的一条路径使得:这条路径上的b的最大值最小.这个路径肯定在MST上……所以枚举一遍所有的边,动态维护一个关于b值的MST即可. ...
- 【BZOJ】【1770】【Usaco2009 Nov】lights 灯
高斯消元解XOR方程组 一眼看上去是高斯消元解xor方程组……但是不会写……sad 去膜拜了Hzwer和ZYF Hzwer啥也没说,还是zyf靠谱…… 当多解的时候就需要爆搜枚举自由元的情况,找最优解 ...
- Asp.net 程序部署问题——在应用程序级别之外使用注册为 allowDefinition='MachineToApplicati错误信息
[转]在应用程序级别之外使用注册为 allowDefinition='MachineToApplicati 错误信息: ======================================== ...
- 解决myeclipse每次启动注册码过期输入注册码
每次都需要重新输入一个新的注册码,搞的很不愉快,后来发现原来是因为在[我的文档]下面有一个myeclipse的配置文件,叫.myeclipse.properties 你可以全盘搜索一下这个文件,然后改 ...
- MSVC CRT运行库启动代码分析
原文链接:http://www.programlife.net/msvc-crt-startup.html 在程序进入main/WinMain函数之前,需要先进行C运行库的初始化操作,通过在Visua ...
- POJ2442Sequence
http://poj.org/problem?id=2442 题意 :就是输入m个数集,每个含n个数,求从每个集合取一个数后,按非降序输出前n小的和. 思路 : 本来打算是用几个for循环的,后来觉得 ...
- 360 chrome 国际版能够隐藏用户保存的密码
用360 chrome 国际版一段时间了,今天发现它一个优点:取消了浏览器保存的密码明文显示! 原生的chrome和枫树都会明文显示密码,360 chrome国际版则只显示保存了密码的域名和账户名.光 ...
- Project Euler 97 :Large non-Mersenne prime 非梅森大素数
Large non-Mersenne prime The first known prime found to exceed one million digits was discovered in ...
- 致诸位新程序员:来自Chuck Jazdzewski慈父般的忠告
记住这几句话,学无止境.(Never stop learning.)沟通至关重要.(Communication is critical.)履行承诺,胜过交付.(Under promise, over ...