zoukankan      html  css  js  c++  java
  • POJ——1012

      原以为POJ挂掉了,不知道是不是,最近连上google都够呛,啥水木也不太行,A了一水题

      又是约瑟夫环的变种,解答也再次让我无语了一次

      自己写的又超时了,后来发现此题可以开挂!!!当然话说回来,它的时间限制偏要让我不能直接输出,而偏偏得先把结果存入数组中

      原题:http://poj.org/problem?id=1012

      

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 bool IsOk(int k, int m)
     6 {
     7     int n = 2*k;
     8     int x = 1;
     9     while(n > k)
    10     {
    11         x = (x-1+m)%n;
    12         if(x == 0)
    13         {
    14             x = n;
    15         }
    16         if(x <= k )
    17         {
    18             return false;
    19         }
    20         n--;
    21     }
    22     return true;
    23 }
    24 
    25 int main()
    26 {
    27     int k = 0, m = 0;
    28     int res[14] ;
    29     for(k = 1; k <= 14; k++)
    30     {
    31         for(m=k+1;;m++)
    32         {
    33             if(IsOk(k,m))
    34             {
    35                 res[k-1] = m;
    36                 break;
    37             }
    38         }
    39     }
    40     while(cin >> k && k != 0)
    41     {
    42         cout << res[k-1] << endl;
    43     }
    44     return 0;
    45 }

      话说那个IsOk函数有另一个写法,区别很细微,以我的理解,一个是从1开始,另一个是从0开始

    bool IsOk(int k, int m)
    {
        int n = 2*k;
        int x = 0;
        while(n > k)
        {
            x = (x-1+m)%n;
            if(x < k )
            {
                return false;
            }
            n--;
        }
        return true;
    }
  • 相关阅读:
    [JLOI2011] 飞行路线
    高精度运算模板
    Dijkstra算法模板
    [SDOI2010] 外星千足虫
    [SDOI2006] 线性方程组
    [CTSC2014] 企鹅QQ
    模板三连击:树状数组+线段树+主席树
    [ZJOI2008] 树的统计
    [国家集训队] 礼物
    [洛谷P4720] [模板] 扩展卢卡斯
  • 原文地址:https://www.cnblogs.com/moondark/p/2662797.html
Copyright © 2011-2022 走看看