标签:
约瑟夫(joseph)
源程序名 joseph.??? (pas,c,cpp)
可执行文件名 joseph.exe
输入文件名 joseph.in
输出文件名 joseph.out
时限 2s
n个人站成一圈,从某个人开始数数,每次数到m的人就被杀掉,然后下一个人重新开始数,直到最后只剩一个人。
现在有一圈人,k个好人站在一起,k个坏人站在一起。从第一个好人开始数数。
你要确定一个最小的m,使得在第一个好人被杀死前,k个坏人先被杀死。
输入
一个k,0<k<14
输出
一个m
样例:
joseph.in
3
joseph.out
5
另一个样例:
joseph.in
4
joseph.out
30
说明:
翻译自uva305,数据及解答由uva提供。
思路:搜索超时,所以……打表……
program aa; const x:array[1..13] of longint=(2, 7, 5, 30, 169, 441, 1872, 7632, 1740, 93313, 459901, 1358657,2504881); var n:longint; begin assign(input,‘joseph.in‘); assign(output,‘joseph.out‘); reset(input); rewrite(output); readln(n); writeln(x[n]); close(input); close(output); end.
标签:
原文地址:http://www.cnblogs.com/liuxinyu/p/4889628.html