Processing math: 100%
新浪微博 Github

随笔分类 -  【Algorithms】

摘要:问题描述:n个罪犯被一群人追杀,为了不被敌人杀死,n个罪犯决定通过如下的方式自杀:手拉手围成一圈,并对每个人按顺序编号为:1,2,3,...,n。从1开始报数,报到k的那个人就自杀,再从自杀的下一个人继续从1开始报数,以此类推,我们能够知道最后幸存的那个人的编号吗?解决方法:通过DP能够在O(n)解决问题。首先我们需要递推式:设f(n,k)表示有n个人且报到k的人自杀的情况下,最后幸存的人的编号。f(n,k)=(f(n1,k)+k1)%n+1其中 f(1,k)=1。如果有 n 个人且报到 k 的人自杀时,第一个自杀的人一定是编号为 $(k-1) \ 阅读全文
posted @ 2013-05-28 17:49 xiazdong 阅读(369) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示