POJ 1012

简介: Joseph Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 40823   Accepted: 15337 Description The Joseph's problem is notoriously known.
Joseph
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 40823   Accepted: 15337

Description

The Joseph's problem is notoriously known. For those who are not familiar with the original problem: from among n people, numbered 1, 2, . . ., n, standing in circle every mth is going to be executed and only the life of the last remaining person will be saved. Joseph was smart enough to choose the position of the last remaining person, thus saving his life to give us the message about the incident. For example when n = 6 and m = 5 then the people will be executed in the order 5, 4, 6, 2, 3 and 1 will be saved.

Suppose that there are k good guys and k bad guys. In the circle the first k are good guys and the last k bad guys. You have to determine such minimal m that all the bad guys will be executed before the first good guy.

Input

The input file consists of separate lines containing k. The last line in the input file contains 0. You can suppose that 0 < k < 14.

Output

The output file will consist of separate lines containing m corresponding to k in the input file.

Sample Input

3
4
0

Sample Output

5
30
/*
因为只有14个测试数据,所以我可大胆猜想这是怕超过int,
既然接近INT_MAX,那么试探m的值很可能超时
*/
//实在没办法的时候,用TLE的程序打表 
#include<stdio.h>
#include<string.h>
int vis[14];
bool is_true(int k,int m)
{
	int n,i,s;
	n=2*k;
    s=0;
	for(i=0;i<k;i++)
	{
		s=(s+m-1)%(n-i);
		if(s<k) return 0;//遇到前k轮中有小于k的直接返回0
	}
	return 1;
}
int main()
{
	int i,k,n;
	for(k=1;k<=14;k++)
	{
		i=k+1;
        while(1)
		{
			if(is_true(k,i))
			{
				vis[k]=i;
				break;
			}
			else if(is_true(k,i+1))
			{
				vis[k]=i+1;
				break;
			}
			i+=k+1;
		}
	}
	while(scanf("%d",&n),n)
	{
		printf("%d\n",vis[n]);
	}
	return 0;
}

 

目录
相关文章
|
7月前
|
算法
Highways(POJ—2485)
Highways(POJ—2485)
POJ 2027 No Brainer
POJ 2027 No Brainer
113 0
|
JavaScript
poj-1008-玛雅历
Description 上周末,M.A. Ya教授对古老的玛雅有了一个重大发现。从一个古老的节绳(玛雅人用于记事的工具)中,教授发现玛雅人使用了一个一年有365天的叫做Haab的历法。这个Haab历法拥有19个月,在开始的18个月,一个月有20天,月份的名字分别是pop, no, zip, zotz, tzec, xul, yoxkin, mol, chen, yax, zac, ceh, mac, kankin, muan, pax, koyab, cumhu。
886 0
POJ 2487 Stamps
Description Background Everybody hates Raymond. He’s the largest stamp collector on planet earth and because of that he always makes fun of all the others at the stamp collector parties.
1067 0
|
算法 数据建模 机器学习/深度学习
poj1273Drainage Ditches
1 #include 2 /* 3 题意:就是寻找从源点到汇点的最大流! 4 要注意的是每两个点的流量可能有多个,也就是说有重边,所以要把两个点的所有的流量都加起来 5 就是这两个点之间的流量了! 6 ...
853 0
|
算法 存储
POJ 1014 Dividing 解答
题目详见http://poj.org/problem?id=1014 看到这道题第一反应便知道它是一道类似背包问题的题,  解法我自然而然得从背包问题的解法入手,  网上查了查,  背包问题的基本题型是01背包, 即每种...
1050 0
poj 2337 Catenyms
点击打开链接poj2377 思路: 并查集+排序+欧拉道路 分析: 1 题目要求的是,是否可以组成欧拉道路并且输出字典序最小的方案 2 和别的题目不一样的是这一题的输出是最小的字典序,所以这里面是一个难点,那么我们应该怎么做呢?其实我们只要对输入的n个单词进行从小到达排序即可 3 然后我们先去判断该有向图是否是单连通的 4 我们去判断是否最多只有两个点的入度不等与出度,其余所有点的出度等于入度 5 如果都满足的话,进行dfs。
859 0