摘要:
问题描述: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
阅读(374)
评论(0)
推荐(0)