关闭

bzoj 3404: [Usaco2009 Open]Cow Digit Game又见数字游戏(SG函数)

标签: bzoj
457人阅读 评论(0) 收藏 举报
分类:

3404: [Usaco2009 Open]Cow Digit Game又见数字游戏

Time Limit: 3 Sec  Memory Limit: 128 MB
Submit: 181  Solved: 124
[Submit][Status][Discuss]

Description

    贝茜和约翰在玩一个数字游戏.贝茜需要你帮助她.
    游戏一共进行了G(1≤G≤100)场.第i场游戏开始于一个正整数Ni(l≤Ni≤1,000,000).游
戏规则是这样的:双方轮流操作,将当前的数字减去一个数,这个数可以是当前数字的最大数码,也可以是最小的非0数码.比如当前的数是3014,操作者可以减去1变成3013,也可以减去4变成3010.若干次操作之后,这个数字会变成0.这时候不能再操作的一方为输家.    贝茜总是先开始操作.如果贝茜和约翰都足够聪明,执行最好的策略.请你计算最后的赢家.
    比如,一场游戏开始于13.贝茜将13减去3变成10.约翰只能将10减去1变成9.贝茜再将9减去9变成0.最后贝茜赢.

Input

    第1行输入一个整数G,之后G行一行输入一个Ni.

Output

    对于每一场游戏,若贝茜能赢,则输出一行“YES”,否则输幽一行“NO”

Sample Input

2
9
10

Sample Output

YES
NO


丢史蒂芬妮一模一样

记忆化搜索或SG打表

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int dp[1000005];
int Sech(int x)
{
	int temp, mn, mx;
	if(dp[x]!=-1)
		return dp[x];
	temp = x;
	mn = 10, mx = 0;
	while(temp)
	{
		if(temp%10!=0)
		{
			mn = min(mn, temp%10);
			mx = max(mx, temp%10);
		}
		temp /= 10;
	}
	if(Sech(x-mn)==0 || Sech(x-mx)==0)
		dp[x] = 1;
	else
		dp[x] = 0;
	return dp[x];
}
int main(void)
{
	int T, n;
	memset(dp, -1, sizeof(dp));
	dp[0] = 0;
	scanf("%d", &T);
	while(T--)
	{
		scanf("%d", &n);
		if(Sech(n))
			printf("YES\n");
		else
			printf("NO\n");
	}
	return 0;
}


1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

博弈论 Nim游戏与SG函数

SG函数&Nim游戏
  • neighthorn
  • neighthorn
  • 2016-07-09 21:41
  • 604

bzoj4134 (sg函数,线段树合并(trie))

trie合并,加sg函数。。。   #include #include #include #include #include #include using namespace std; const i...
  • running_in_dark
  • running_in_dark
  • 2017-03-26 11:29
  • 145

组合游戏 - SG函数和SG定理

组合游戏的和通常是很复杂的,所以我们介绍一种新工具,可以使组合问题变得简单————SG函数和SG定理。 Sprague-Grundy定理(SG定理):         游戏和的SG函数等于各个游戏SG...
  • luomingjun12315
  • luomingjun12315
  • 2015-05-07 08:09
  • 7728

bzoj 4515 [Sdoi2016]游戏 线段树维护凸包

先树链剖分转成区间问题。 S到T的路径可以拆成S-lca和lca-T。 设d[r]表示根到r的距离。 对于S-lca中的点r,加的值为: a∗(d[s]−d[r])+b=(−a)∗d[r]+(...
  • make_it_for_good
  • make_it_for_good
  • 2016-10-27 21:04
  • 130

关于 Nim游戏与SG函数 的一点研究

引言在《博弈圣经》中博弈论的定义:我们把动物利用大自然移动的瘾魂,在决策人期待的空间里,形成三维均衡的语文学理论,称为博弈论。 博弈论又被称为对策论(Game Theory)既是现代数学的一个新分支...
  • Clove_unique
  • Clove_unique
  • 2016-12-25 10:36
  • 935

HAOI2015 解题报告

先给出ydc的题解地址: http://ydc.blog.uoj.ac/blog/336 T1(树上染色): 题目地址: http://cojs.tk/cogs/problem/problem....
  • wmdcstdio
  • wmdcstdio
  • 2015-04-28 12:00
  • 2117

【bzoj4515】【SDOI2016】【游戏】【线段树+树链剖分】

Description Alice 和 Bob 在玩一个游戏。 游戏在一棵有 n 个点的树上进行。最初,每个点上都只有一个数字,那个数字是 123456789123456789。 有时,Alice ...
  • sunshinezff
  • sunshinezff
  • 2016-07-08 11:51
  • 474

博弈论 SG函数

别被文章长度吓到,学会博弈(SG)只用看前1/10。 鉴于讲明白博弈要写好多字,于是找了些论文拼凑,对疑难点加了注释并配上“美图”助解。 Nim游戏 重点结论:对于一个Nim游戏的局面(a1,a2,....
  • strangedbly
  • strangedbly
  • 2016-04-12 21:36
  • 6916

SG函数的详细解释

SG函数可以说是博弈论中很重要的运用,有了SG函数就可以解决很多很难解决的博弈问题,也是解决例如nim博弈和翻硬币博弈的一些基础。 入门一: 首先来玩个游戏,引用杭电课件上的: ...
  • beyhhhh
  • beyhhhh
  • 2015-07-14 20:38
  • 516

博弈论 SG函数从懵逼到入门 SG模板 hdu1848

 摘自piaocoder的博客: 首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数。例如 mex{0,1,2,4...
  • yizhangbiao
  • yizhangbiao
  • 2016-07-22 10:03
  • 1259
    个人资料
    • 访问:150092次
    • 积分:7876
    • 等级:
    • 排名:第3160名
    • 原创:608篇
    • 转载:2篇
    • 译文:0篇
    • 评论:83条
    最新评论