码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 1730 Nim博弈

时间:2018-06-02 16:35:55      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:nim博弈   AC   移动   amp   turn   cst   name   abs   arp   

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1730

Nim博弈为:n堆石子,每个人可以在任意一堆中取任意数量的石子

n个数异或值为0就后手赢,否则先手赢

 

将这题转化成Nim游戏

可以在任意一行中移动任意距离,可以向左或右,但是仔细观察发现,其实只能接近对方棋子,如果你远离对方棋子,对方可以接近你相同距离

和nim相似的是,不能不移,所以两个棋子的距离差就是SG值

 

#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	int n,m;
	while(cin>>n>>m)
	{
		int ans=0;
		for(int i=1;i<=n;i++)
		{
			int a,b;
			scanf("%d %d",&a,&b);
			ans^=int(abs(a-b)-1);
		}
		if(ans==0)cout<<"BAD LUCK!"<<endl;
		else cout<<"I WIN!"<<endl;
	}
	return 0;
}

  

hdu 1730 Nim博弈

标签:nim博弈   AC   移动   amp   turn   cst   name   abs   arp   

原文地址:https://www.cnblogs.com/carcar/p/9125656.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!