摘要: nim游戏简介(取(m堆)石子游戏 算法分析)Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论 Nim游戏是组合游戏(CombinatorialGames)的一种,准确来说,属于“ImpartialCombinatorialGames”(以下简称ICG)。满足以下条件的游戏是ICG(可能不太严谨):1、有两名选手;2、两名选手交替对游戏进行移动(move),每次一步,选手可以在(一般而言)有限的合法移动集合中任选一种进行移动;3、对于游戏的任何一种可能的局面,合法的移动集合只取决于这个局面本身,不取决于轮到哪名选手操作、以前的任何操作、骰子的点数或者其它什么. 阅读全文
posted @ 2013-04-04 16:05 crazy_apple 阅读(3387) 评论(0) 推荐(0) 编辑
摘要: hdu 2176 取(m堆)石子游戏http://acm.hdu.edu.cn/showproblem.php?pid=2176ProblemDescriptionm堆石子,两人轮流取.只能在1堆中取.取完者胜.先取者负输出No.先取者胜输出Yes,然后输出怎样取子.例如5堆5,7,8,9,10先取者胜,先取者第1次取时可以从有8个的那一堆取走7个剩下1个,也可以从有9个的中那一堆取走9个剩下0个,也可以从有10个的中那一堆取走7个剩下3个.Input输入有多组.每组第1行是m,m<=200000.后面m个非零正整数.m=0退出.Output先取者负输出No.先取者胜输出Yes,然后输出 阅读全文
posted @ 2013-04-04 16:04 crazy_apple 阅读(274) 评论(0) 推荐(0) 编辑
摘要: hdu 2175 汉诺塔IXhttp://acm.hdu.edu.cn/showproblem.php?pid=2175ProblemDescription1,2,...,n表示n个盘子.数字大盘子就大.n个盘子放在第1根柱子上.大盘不能放在小盘上.在第1根柱子上的盘子是a[1],a[2],...,a[n].a[1]=n,a[2]=n-1,...,a[n]=1.即a[1]是最下面的盘子.把n个盘子移动到第3根柱子.每次只能移动1个盘子,且大盘不能放在小盘上.问第m次移动的是那一个盘子.Input每行2个整数n(1≤n≤63),m≤2^n-1.n=m=0退出Output输出第m次移动的盘子的号数 阅读全文
posted @ 2013-04-04 16:03 crazy_apple 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 匈牙利算法--过程图解转自:http://wanzhenjie88.blog.163.com/blog/static/4066646920077131486697/转载:以下算法可把G中任一匹配M扩充为最大匹配,此算法是Edmonds于1965年提出的,被称为匈牙利算法,其步骤如下:(1)首先用(*)标记X中所有的非M-顶点,然后交替进行步骤(2),(3)。(2)选取一个刚标记(用(*)或在步骤(3)中用(yi)标记)过的X中顶点,例如顶点xi,然后用(xi)去标记Y中顶点y,如果xi与y为同一非匹配边的两端点,且在本步骤中y尚未被标记过。重复步骤(2),直至对刚标记过的X中顶点全部完成一遍上 阅读全文
posted @ 2013-04-04 16:02 crazy_apple 阅读(7349) 评论(0) 推荐(0) 编辑
摘要: 匈牙利算法-包括代码转自:http://wanzhenjie88.blog.163.com/blog/static/4066646920077129405279/?latestBlog匈牙利算法转载:求最大匹配的一种显而易见的算法是:先找出全部匹配,然后保留匹配数最多的。但是这个算法的复杂度为边数的指数级函数。因此,需要寻求一种更加高效的算法。增广路的定义(也称增广轨或交错轨):若P是图G中一条连通两个未匹配顶点的路径,并且属M的边和不属M的边(即已匹配和待匹配的边)在P上交替出现,则称P为相对于M的一条增广路径。由增广路的定义可以推出下述三个结论:1-P的路径长度必定为奇数,第一条边和最后一 阅读全文
posted @ 2013-04-04 16:00 crazy_apple 阅读(1081) 评论(0) 推荐(0) 编辑
摘要: 1 #include<iostream> 2 #include<stdio.h> 3 #include<math.h> 4 #include<algorithm> 5 #include<string.h> 6 #include<string> 7 #include<ctime> 8 #include<queue> 9 #include<list>10 #define INF 999999911 #define MAXN 1000012 using namespace std;13 // 阅读全文
posted @ 2013-04-04 15:59 crazy_apple 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 最大匹配之匈牙利算法模板。。转自:http://www.cnblogs.com/Mu-Tou/archive/2011/08/11/2135405.html要学习匈牙利算法先要懂得二部图的各种概念。。下面给出由o(∩_∩)oMiYu总结的一般性概念,这些概念很重要,一定要懂。。二分图的基本概念:(意思就是所有的点分成了2个集合x,y.每个集合中的顶点相互间没有边)一个无向图G=<V,E>,如果存在两个集合X,Y,使得X∪Y=V,X∩Y=Φ,并且每一条边e={x,y}有x∈X,y∈Y,则称G为一个二分图(bipartitegraph).常用来表示一个二分图.若对X中任一x及Y中任一y 阅读全文
posted @ 2013-04-04 15:57 crazy_apple 阅读(235) 评论(0) 推荐(0) 编辑
摘要: hdu 1151 Air Raid(最小路径覆盖)http://acm.hdu.edu.cn/showproblem.php?pid=1151ProblemDescriptionConsideratownwhereallthestreetsareone-wayandeachstreetleadsfromoneintersectiontoanother.Itisalsoknownthatstartingfromanintersectionandwalkingthroughtown'sstreetsyoucanneverreachthesameintersectioni.e.thetown 阅读全文
posted @ 2013-04-04 15:55 crazy_apple 阅读(127) 评论(0) 推荐(0) 编辑
摘要: hdu 1599 find the mincost routehttp://acm.hdu.edu.cn/showproblem.php?pid=1599ProblemDescription杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区。现在8600需要你帮他找一条这样的路线,并且花费越少越好。Input第一行是2个整数N和M(N<=100,M<=1000),代表景区 阅读全文
posted @ 2013-04-04 15:53 crazy_apple 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/fangyukuan/archive/2010/09/21/1832364.html【STL】list基础各个容器有很多的相似性。先学好一个,其它的就好办了。先从基础开始。先看看他们的分类吧标准STL序列容器:vector、string、deque和list。标准STL关联容器:set、multiset、map和multimap。非标准序列容器slist和rope。slist是一个单向链表,rope本质上是一个重型字符串。非标准关联容器hash_set、hash_multiset、hash_map和hash_multimap。(各容器成员对比 阅读全文
posted @ 2013-04-03 22:05 crazy_apple 阅读(285) 评论(0) 推荐(0) 编辑