编程之美学习
Huaerge
这个作者很懒,什么都没留下…
展开
-
1.14 连连看游戏设计(0624)
<br />别人的笔记:<br />http://www.bsdlover.cn/html/98/n-3498.html<br /><br />广度优先算法<br />深度优先算法:相当于先根遍历<br />最小生成树:<br />普里姆算法:取相邻的最小边<br />克鲁斯卡尔算法:每次取最小边,最后连起来<br />最短路径:<br />单源最短路径:Dijkstra提出按路径长度递增的次序产生最短路径的算法<br />每一对顶点之间的最短路径:原创 2010-06-24 22:47:00 · 606 阅读 · 0 评论 -
4.3 买票找零 卡特兰数
转自:http://blog.163.com/prevBlogPerma.do?host=gpww&srl=118268164200996103932731&mode=prev《编程之美》中提到了“买票找零”问题,查阅了下资料,此问题和卡特兰数 Cn有关,其定义如下:卡特兰数真是一个神奇的数字,很多组合问题的数量都和它有关系,例如:Cn= 长度为 2n的 Dyck words的数量。 Dyck words是由 n个 X和 n个 Y组成的字符串,并且从左往右数, Y的数量不超过 X,例如长度为 6的 Dyck转载 2010-06-20 14:45:00 · 1055 阅读 · 0 评论 -
1.1 CPU使用率(0518)
1) 使用sleep()函数时要包含头文件#include 2) GetTickCount()可以得到“系统启动到现在”所经历时间的毫秒值,最多能够统计到49.7天3) 64位整类型__int64,包含头文件stdlib.h,记得加下划线解法一 简单的解法#include #include int main(){ for(;;) { for(int i=0;i#include #include int main(){ int busyTime=10;原创 2010-06-20 20:21:00 · 754 阅读 · 0 评论 -
一摞烙饼的排序(0621)
每一个算法都值得好好地分析问题:假设有n块大小不一的烙饼,那最少要翻几次,才能达到最后大小有序的结果呢?分析与解法这个排序问题非常有意思,首先我们要弄清楚解决问题的关键操作——“单手每次抓几块饼,全部颠倒”。每次我们只能选择最上方的一堆饼,一起翻转。而不能一张张地直接抽出来,然后进行插入,也不能交换任意两块饼子。这说明基本的排序办法都不太好用。那么怎么把这n个烙饼排好序呢?由于每次操作都是针对最上面的饼,如果最底层的饼已经排序,那我们只用处理上面的n-1个烙饼。这样,我们可以再简化为n-2、n-3,直到最上原创 2010-06-21 21:29:00 · 3192 阅读 · 0 评论 -
NIM:一排石头的游戏
<br />NIM(1):一排石头的游戏<br /> N块石头排成一行,每块石头有各自固定的位置。两个玩家依次取石头,每个玩家每次可以取其中任意一块石头,或者相邻的两块石头,石头在游戏过程中不能一位(即编号不会改变),最后能将剩下的石头一次取光的玩家获胜。<br /> 先取者的必胜策略:假设石头的个数为N,先取者取中间一个(N为奇数)或者中间相连的两个(N为偶数),总之确保第一次取完以后左右两边的石头数目是一样的,之后先取者只要每次以初始中心为对称轴,在与后取者所取石头位置对应的地方取相同数目的石头原创 2010-06-22 22:34:00 · 1700 阅读 · 0 评论