Nim Game
简单规律:
如果你面前的石子数为1,2,3必赢 4必输;
所以4+1(5),4+2(6),4+3(7)你必赢,因为你总是有办法让对方面对4,而前面分析过了4是必输的;
所以当你面对n的时候,如果n-1 n-2 n-3 有一个是必输的,那么你就会赢,否则你就会输
可以分析8的时候,因为5,6,7都是赢,所以面对8的一方是必输的;
因为8必输,所以9,10,11必赢【道理,跟4,5,6,7是一样的~】
所以12必输。。。
。。。。
以此类推。。。
。。。。
发现了吧,每4个数字是一个循环!
class Solution {
public:
    bool canWinNim(int n) {
        if(n<0) return false;
        if(n%4==0) return false;
        return true;
    }
};
Nim Game的更多相关文章
- [LeetCode] Nim Game 尼姆游戏
		
You are playing the following Nim Game with your friend: There is a heap of stones on the table, eac ...
 - CodeForces - 662A Gambling Nim
		
http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...
 - HDU 5795 A Simple Nim 打表求SG函数的规律
		
A Simple Nim Problem Description Two players take turns picking candies from n heaps,the player wh ...
 - LeetCode 292. Nim Game
		
Problem: You are playing the following Nim Game with your friend: There to stones. The one who remov ...
 - 【SRM】518 Nim
		
题意 \(K(1 \le K \le 10^9)\)堆石子,每堆石子个数不超过\(L(2 \le 50000)\),问Nim游戏中先手必败局面的数量,答案对\(10^9+7\)取模. 分析 容易得到\ ...
 - HDU 2509 Nim博弈变形
		
1.HDU 2509 2.题意:n堆苹果,两个人轮流,每次从一堆中取连续的多个,至少取一个,最后取光者败. 3.总结:Nim博弈的变形,还是不知道怎么分析,,,,看了大牛的博客. 传送门 首先给出结 ...
 - HDU 1907  Nim博弈变形
		
1.HDU 1907 2.题意:n堆糖,两人轮流,每次从任意一堆中至少取一个,最后取光者输. 3.总结:有点变形的Nim,还是不太明白,盗用一下学长的分析吧 传送门 分析:经典的Nim博弈的一点变形. ...
 - Nim游戏
		
目前有3堆石子,每堆石子个数也是任意的,双方轮流从中取出石子,规则如下:1)每一步应取走至少一枚石子:每一步只能从某一堆中取走部分或全部石子:2)如果谁不能取谁就失败. Bouton定理: 必败状态当 ...
 - HDU 3032 Nim or not Nim (sg函数)
		
加强版的NIM游戏,多了一个操作,可以将一堆石子分成两堆非空的. 数据范围太大,打出sg表后找规律. # include <cstdio> # include <cstring> ...
 - 292. Nim Game
		
292. Nim Game You are playing the following Nim Game with your friend: There is a heap of stones on ...
 
随机推荐
- 【5集iCore3_ADP演示视频】5-5 iCore3应用开发平台示波器和信号源校准
			
iCore3双核心应用开发平台基于iCore3双核心板,包含ARM.FPGA.7寸液晶屏.双通道数字示波器.任意波发生器.电压表等模块,是一款专为电子爱好者设计的综合性电子学习系统. [视频简介]本视 ...
 - PHP写在线视频直播技术详解
			
2016年7月22日 22:26:45 交流QQ:903464207 本文会不断更新 废话一句,如果你要做高性能服务器服务,请去读底层的东西 http tcp/ip socket 了解基础协议,你对如 ...
 - PostGr-SQL database创建表
			
postgres=# create database vertigo_sandbox; postgres=# \connect vertigo_sandbox vertigo_sandbox=# CR ...
 - python -socket -client
			
socket client 发起连接. 流程为: 创建接口 发起连接 创建接口参数同socket server相同 发起连接的函数为socket.connect(ip,port) 这个地方的ip与po ...
 - Yii源码阅读笔记(三十)
			
Widget类是所有小部件的基类,开始,结束和渲染小部件内容的方法的注释: namespace yii\base; use Yii; use ReflectionClass; /** * Widget ...
 - js null 和 undefined
			
undefined是一个特殊类型,null本质上是一个对象 typeof undefined//"undefined"typeof null//"object" ...
 - iOS 自定义键盘ToolBar(与键盘的弹出、收起保持一致)
			
1.监听键盘改变的通知 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyBoardWillCha ...
 - LeetCode Minimum Moves to Equal Array Elements II
			
原题链接在这里:https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/ 题目: Given a non-empt ...
 - 试解析Tomcat运行原理(一)--- socket通讯
			
关于这篇文章也确实筹划了很久,今天决定开篇写第一篇,说起tomcat首先很容易联想到IIS,因为我最开始使用的就是.net技术,我第一次使用asp写学生成绩管理系统后,很茫然如何让别人都能看到或者说使 ...
 - RabbitMQ系列之Centos 7安装RabbitMQ 3.6.1
			
1.安装EPEL-7: rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm 2.安 ...