hdu3032 Nim or not Nim? SG打表找规律
2014-02-20 04:54
225 查看
N堆石子,每次两种操作,1:选取一堆,取走若干个;2:选取一堆,将其分成两堆石子。取走最后一个石子的输。
数据给的很大,一组一组的去求SG函数显然会超=..算一下较小的SG值,发现0--8的SG值分别为0,1,2,4,3,5,6,8,7....发现还是有规律的,那么直接按规律算出SG值最后异或一下答案就出来了..
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int f(int x)
{
int t=x%4;
if (t==0)
{
if (x==0) return 0;
else return x-1;
}
if (t==1 || t==2) return x;
return x+1;
}
int n,m,p,q;
int main()
{
// freopen("in.txt","r",stdin);
int tt;
scanf("%d",&tt);
while (tt--)
{
scanf("%d",&n);
int ans=0;
for (int i=1; i<=n; i++)
{
scanf("%d",&m);
ans=ans^f(m);
}
if (ans) puts("Alice");
else puts("Bob");
}
return 0;
}
数据给的很大,一组一组的去求SG函数显然会超=..算一下较小的SG值,发现0--8的SG值分别为0,1,2,4,3,5,6,8,7....发现还是有规律的,那么直接按规律算出SG值最后异或一下答案就出来了..
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int f(int x)
{
int t=x%4;
if (t==0)
{
if (x==0) return 0;
else return x-1;
}
if (t==1 || t==2) return x;
return x+1;
}
int n,m,p,q;
int main()
{
// freopen("in.txt","r",stdin);
int tt;
scanf("%d",&tt);
while (tt--)
{
scanf("%d",&n);
int ans=0;
for (int i=1; i<=n; i++)
{
scanf("%d",&m);
ans=ans^f(m);
}
if (ans) puts("Alice");
else puts("Bob");
}
return 0;
}
相关文章推荐
- HDU 5795 A Simple Nim(SG打表找规律)
- hdu 5795 2016 Multi-University Training Contest 6(SG+打表找规律)
- hdu4203 Doubloon Game-------sg 打表找规律
- hdu 5795 A Simple Nim(SG打表找规律)
- hdu 2147 kiki's game(DP(SG)打表找规律)
- LightOJ-1296 Again Stone Game(SG打表找规律)
- HDU 3032 Nim or not Nim?(博弈 SG打表找规律)
- hdu 3032 sg打表找规律 *
- HDU 5795 A Simple Nim(SG打表找规律)——2016 Multi-University Training Contest 6
- hdu 3032 Nim or not Nim? (SG打表找规律)
- HDU 3032 Nim or not Nim?(博弈,SG打表找规律)
- 1068 Bash游戏 V3 (sg打表找规律)
- HDU 3032 Nim or not Nim?(Multi_SG,打表找规律)
- HDU 5795 A Simple Nim 详解(SG打表找规律,博弈好题)
- hdu 4664 Triangulation(博弈论 sg找规律打表)
- 尼姆博奕HDU 5795 A Simple Nim(SG打表找规律)
- HDU 3032 (SG打表找规律)
- UVA 1482 - Playing With Stones(SG打表规律)
- HDU 3032 Nim or not Nim? SG打表找规律
- hdu5795 A Simple Nim 求nim求法,打表找sg值规律 给定n堆石子,每堆有若干石子,两个人轮流操作,每次操作可以选择任意一堆取走任意个石子(不可以为空) 或者选择一堆,把它分成三堆,每堆不为空。求先手必胜,还是后手必胜。