新浪微博 Github
上一页 1 2 3 4 5 6 7 8 9 ··· 30 下一页
摘要: 问题描述:n个罪犯被一群人追杀,为了不被敌人杀死,n个罪犯决定通过如下的方式自杀:手拉手围成一圈,并对每个人按顺序编号为:1,2,3,...,n。从1开始报数,报到k的那个人就自杀,再从自杀的下一个人继续从1开始报数,以此类推,我们能够知道最后幸存的那个人的编号吗?解决方法:通过DP能够在$O(n)$解决问题。首先我们需要递推式:设$f(n,k)$表示有n个人且报到k的人自杀的情况下,最后幸存的人的编号。\[f(n,k)=(f(n-1,k)+k - 1)\%n + 1\]其中 $f(1,k) = 1$。如果有 $n$ 个人且报到 $k$ 的人自杀时,第一个自杀的人一定是编号为 $(k-1) \ 阅读全文
posted @ 2013-05-28 17:49 xiazdong 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 汉诺塔游戏是19世纪由法国数学家 Lucas 发明的,这个游戏由三根柱子以及n个大小不一的圆盘组成,初始时全部的圆盘都放在第一个柱子(最左边的柱子)上,并且从小到大排列,游戏的目标是将全部的圆盘从小到大放到第二个柱子上,游戏规则是:“每次只能移动一个圆盘,任何时候都不能把较大的圆盘叠在较小的圆盘上”。我们在这里需要讨论如果要完成游戏,则需要移动的次数。设 $H_n$ 表示当有n个圆盘时用方法A需要移动的次数。我们可以先用方法A将前n-1个圆盘移到第3个柱子(移动次数为$H_{n-1}$),再将最左边柱子的剩下的一个圆盘移到第二个柱子(移动次数为1次),再将第三个柱子上的n-1个圆盘用方法A放到 阅读全文
posted @ 2013-05-27 22:17 xiazdong 阅读(318) 评论(0) 推荐(0) 编辑
摘要: Fibonacci Numbers is posed by Fibonacci in 13th century.Fibonacci Numbers 是源自“孤岛上的兔子”问题,问题是这样的:在孤岛上被放了两只刚刚生下来的兔子(一公一母),兔子到了第2个月就能够生小兔子了,且每个月生一对小兔子。设$f(n)$表示第n个月开始时有多少对兔子,$f(n)=f(n-1)+f(n-2)$,其中f(n-1)表示上个月的那些兔子,f(n-2)表示在n-2个月开始时已经有的兔子,他们到了第n个月时一定有生育能力,因此会在第n个月开始时生下f(n-2)对兔子。开始时,f(1)=1,f(2)=1。递推关系:\[f 阅读全文
posted @ 2013-05-27 21:57 xiazdong 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-05-26 20:22 xiazdong 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-05-26 10:44 xiazdong 阅读(200) 评论(0) 推荐(0) 编辑
摘要: Trail: a walk that does not repeat any edges.Closed Trail(Circuit): a trail that begins and ends at the same vertex.Eulerian Circuit: a circuit that includes every edge of the graph.Eulerian Trail: a trail that includes every edge of the graph.在无向图中,图 $G$ 有欧拉回路当且仅当每个点的度数为偶数。在有向图中,图 $G$ 有欧拉回路当且仅当每个点的 阅读全文
posted @ 2013-05-25 09:17 xiazdong 阅读(991) 评论(0) 推荐(0) 编辑
摘要: 此处说的“环”是一个简单环。假设图是用邻接矩阵实现,邻接矩阵记为 $A$ ,节点个数为 $n$,边的个数为 $m$。如果存在 $i,j$,且 $1 \le i<j \le n$ ,$N(i) \cap N(j) \ge 2$ ,则说明存在一个长度为 4 的环。算法如下: 1 for(i=1 to n) 2 for(int j=i+1 to n) 3 count = 0; 4 for(int k=1 to n) 5 if(A[j][k]==A[i][k]==1) 6 count++; 7 ... 阅读全文
posted @ 2013-05-20 22:28 xiazdong 阅读(197) 评论(0) 推荐(0) 编辑
摘要: DescriptionJohn农夫拥有许多农场,John发现了许多神奇的树洞。这些树洞都非常特殊因为进入树洞后能够把你送到一个目的地,并且到达目的地时的时间早于你进入树洞时的时间(比如你进入洞时是2000年,但是出洞时发现是1990年)。每个农场都有N(1<=N<=500)个field,记为1...N,M(1<=M<=2500)条path,W(1<=W<=200)个wormhole。John是一个很喜欢穿越的人,他想从某个区域进入,并且经过一系列的路径或树洞,最后到达起点,并且到达起点时发现比最初在起点的时间还早。为了帮助John实现这个愿望,他提供给我们他 阅读全文
posted @ 2013-05-03 19:13 xiazdong 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 本文将告诉你学习Java需要达到的25个目标,希望能够对你的学习及找工作有所帮助。对比一下自己,你已经掌握了这25条中的多少条了呢? 1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该了解UML,尤其是 class,object,interaction以及statediagrams。 2.你需要学习Java语言的基础知识以及它的核心类库 (collections,serialization,streams,networking,?multithreading,reflection,event,handling,NIO,localizatio 阅读全文
posted @ 2012-12-21 20:55 xiazdong 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 数学归纳法分为第一数学归纳法和第二数学归纳法 阅读全文
posted @ 2012-12-02 15:58 xiazdong 阅读(1843) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 30 下一页