北航的一个ACM题目----约瑟夫,求快速的解法!!!
约瑟夫
时间限制:1000 ms 内存限制:65536 KB
描述
我们都知道joseph问题,n个人围成一圈以m报数,报m的人被杀死,余下来的人接着从1报数,直到剩最后一人。
现在我们已知有k个好人,k个坏人,(1<=k<=14)围成一圈报数,前k个为好人,后k个为坏人,求最小的m使得所有的坏人先被杀死(保证不死一个好人的情况)
输入
多组测试数据,以0结束
输出
每组数据对应一个输出结果,每个结果一行
样例输入
3
4
0
样例输出
5
30
我老是超时,最后是一个个的求出来,建了个表AC的,前13个很快,但k=14时,花时间较多~
请问这个题目有直接解出的算法吗?