Nim Game是非常著名的游戏,它的变体也很多,在《编程之美》上也用了三章讲解它。 Wikipedia 上说的很详细,本文则是在对wiki上的内容阅读后的个人理解。 游戏概述: 有M堆石子,每堆石子的个数不…
分类:编程之美
编程之美2.4——“1”的数目
题目描述:给定一个正整数N,写出1到N(包含N)的所有正整数,然后数一下其中出现的所有N的个数。 举个例子,假设你输入的是11,则1到11的所有正整数为: 1,2,3,4,5,6,7,8,9,10,11 其中1出现了四次…
编程之美-两堆石头的游戏
问题:假设有两堆游戏,两个玩家根据以下规则轮流取石头:每个人每次可从两堆石头中各取数量相等的石头,或者仅从一堆石头中取出任意数量的石头。最后把剩下的石头依次拿光人获胜。两堆石头数量分别为n m。 思想:先产生i<=…
编程之美--分层遍历二叉树
1.输出二叉树某一层结点(从左到右) 把输出二叉树第K层结点转换成:分别输出”以该二叉树根结点的左右子树为根的两棵子树”中第K-1层结点。 void PrintNodeAtLevel(Node *…
[编程之美]写一个函数,返回一个数组中所有元素被第一个元素除的结果
题目: 写一个函数,返回一个数组中所有元素被第一个元素除的结果; 错误的版本: void DivArray(int *array, int n) { for (int i = 0; i <…
编程之美_神奇的数列
时间限制: 2000ms 单点时限: 1000ms 内存限制: 256MB 描述 大神同学是一个热爱数字的孩子,她无时无刻不在思考生活与数学的联系。有一天,她发现其实公历的设计是有讲究的。 每4年就会多闰一天,每一百年又…
编程之美-3.1 字符串移位包含问题 笔记
假设字符串s1=AABCD,s2=CDAA,判断s2是否可以通过S1的循环移位得到字符串包含。 如 s1移两位: 1.ABCDA->2.BCDAA 则此时包含了 S2=”CDAA”…
《编程之美-微软技术面试心得》这本书中的1.11节的转化问题研究:nim拈游戏研究
《编程之美-微软技术面试心得》这本书中的1.11节有一个问题: 一堆石块,A和B两个人从里面拿,每次只能拿一个或者任意连续的两个,最后拿到的算赢,先拿者是否有必胜策略: 这个问题较为简单:先拿者有必赢策略,只要按照如下规…
【编程之美】买票找零
一,问题:n个拿着1元,n个人拿着2元去买票。票价一元,且售票元只能用n个人购票的一元给2元的找零。问有几种排列方法 分析:卡特兰数方法 递推公式:F(2*n) =F(0)*F(2(n-1)) +F(1)*F(2(n-2…
【编程之美】java实现重建二叉树
package com.cn.binarytree.utils; /** * @author 刘利娟 liulijuan132@gmail.com * @version 创建时间:2014年7月20日 下午2:03:30…
编程之美15-彩色的树
看第一眼以为这个题不好做,把过多的时间浪费在第二题上了。《彩色的树》这题是一个顶点染色的问题,用点dfs去不断染色,然后记录子树的个数就好,题目的内容如下: &nbs…
【编程之美】一些细节的总结
1.mid=(min+max)/2的不严谨。mid=min+(max-min)/2更为严谨,加法临界最大值时容易溢出。