wikioi 1037 取数游戏

原创 2013年12月05日 21:51:35

http://wikioi.com/problem/1037/

    有一个有趣得取数游戏。初始时,给出一个环,环上得每条边上都有一个非负整数。这些整数中至少有一个时0。然后,将一枚硬币放在环上得一个节点上。二个玩家就是以这个放硬币得节点为起点开始这个游戏,二人轮流取数,取数得规则如下:

    (1)选择硬币左边或右边得一条边,并且边上得数非0;

    (2)将这条边上的数减至任意一个非负整数(至少要有所减小);

    (3)将硬币移到边的另一端。

    如果轮到一个玩家走,这时硬币左右两边的边上的数值都是0,那么这个玩家就输了。

    如下图所示,描述的时爱丽思和鲍勃两人的对弈过程,其中黑色节点表示硬币所在节点,结果图(d)中,轮到鲍勃走时,硬币两边的边上都是0。所以爱丽思获胜。

 

    现在你的任务是根据给出的环、边上的数值以及起点(硬币所在位置),判断先走方是否有必胜的策略。


博弈游戏,考虑如何使对手必败

如果二手不把他走过的边变为0,那么先手可以在下一步中往回走,也就是走刚才二手走的边,并把这条边变为0,由此,二手则必败。

由此2个人都要把边降为0

如果先手的位置走过奇数步(一直往左走或者往右走),能够到达0这条边之前的那个点,那么先手必胜,否则,先手必败。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int go[25];
int vis[25];
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>go[i];
	}
	for(int i=n;i>=1;i--)
	{
		vis[i]=go[n-i+1];//两个方向
	}
	int tot1=0;//一边
	for(int i=1;i<=n;i++)
	{
		if(go[i]==0)break;
		tot1++;
	}
	int tot2=0;//另一边
	for(int i=1;i<=n;i++)
	{
		if(vis[i]==0)break;
		tot2++;
	}
	if(tot1%2==1||tot2%2==1)printf("YES\n");//中有一个是偶数
	else printf("NO\n");
 	return 0;
}
			


wikioi p1166 矩阵取数游戏

这题是动规还好  问题是要加功能很齐全的高精度   一下子就变得恶心了 高精度没法说.....就不说了... dp[i][j] 表示计算的那一层还剩下为 [ i , j ] 的区间 保存之前取数的...
  • u011797284
  • u011797284
  • 2013年08月25日 13:13
  • 873

【wikioi】1166矩阵取数游戏

本质上就是一个在一行中头尾取数情况下
  • u012837895
  • u012837895
  • 2014年04月28日 21:38
  • 345

wikioi 1166 矩阵取数游戏

题目描述 Description 【问题描述】 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m 的矩阵,矩阵中的每个元素aij均 为非负整数。游戏规则如下: 1. 每次取数...
  • dominating413421391
  • dominating413421391
  • 2014年08月23日 18:32
  • 320

Wikioi P1166 矩阵取数游戏

若只有一排,则与抓盘游戏相似。 本题不过
  • Argetlam
  • Argetlam
  • 2014年10月01日 23:12
  • 239

取数游戏 贪心

给出2*n(n
  • sinat_34943123
  • sinat_34943123
  • 2016年05月11日 21:45
  • 805

矩阵取数游戏

题目描述 Description 【问题描述】 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m 的矩阵,矩阵中的每个元素aij均 为非负整数。游戏规则如下: 1. 每次取数时须从每行各...
  • sinat_34943123
  • sinat_34943123
  • 2016年09月10日 16:44
  • 1186

取数游戏-动态规划

题目: 代码: #include #include #include #include #include #include #include #include #include #...
  • caoyan_12727
  • caoyan_12727
  • 2016年09月20日 15:54
  • 676

【日常学习】【区间DP+高精】codevs1166 矩阵取数游戏题解

题目来自NOIP2007TG3 如果在考场上我现在已经歇菜了吧 今天一整天的时间全部投在这道题上,收获不小。 先上题目 题目描述 Description 【问题描述】 帅帅经常跟同学玩...
  • ametake
  • ametake
  • 2015年08月14日 18:11
  • 3282

矩阵取数游戏

这是一道NOIp07年的原题,题目本身并不难。 题目看上去很熟悉,第一次看完题目后往贪心的方面去想的,设计了两种贪心策略:1、每次从两端选取最小的数字;2、从后向前倒推,使最后一次取到的数字最大...
  • Enjoying_Science
  • Enjoying_Science
  • 2014年08月06日 22:13
  • 843

洛谷 P1288 取数游戏II

博弈论
  • Rlt1296
  • Rlt1296
  • 2016年11月13日 22:56
  • 214
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:wikioi 1037 取数游戏
举报原因:
原因补充:

(最多只允许输入30个字)