poj 1012 Joseph

来源:互联网 发布:qt5串口编程实例 编辑:程序博客网 时间:2024/06/13 01:43
/*poj 1012 Joseph题意:约瑟夫问题,要求后k个数比前k个数先删除,求最小的m。题解:暴力。。。k不多,把答案存下,就不会超时。*/#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 110;int n;int a[N];int main(){    int k;    while(cin >> k && k)    {        if(a[k])        {            printf("%d\n",a[k]);            continue;        }        n = k*2;        int m;        for(m = k+1; ; m++)        {            int i;            int s = 0;            for(i = 0; i < k; i++)            {                s = (s+m-1)%(n-i);                if(s < k)                    break;            }            if(i == k)                break;        }        a[k] = m;        printf("%d\n",m);    }    return 0;}

0 0