现在的位置: 首页 > 综合 > 正文

POJ1012

2014年10月16日 ⁄ 综合 ⁄ 共 1683字 ⁄ 字号 评论关闭
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. public class Main {
  5.     // 打表数据...不打表我这个程序会超时...虽然我机子是秒出的
  6.     int a[] = new int[] { 2753016944118727632174093313,
  7.             4599011358657250488113482720 };
  8.     public static void main(String[] args) throws NumberFormatException,
  9.             IOException {
  10.         BufferedReader read = new BufferedReader(new InputStreamReader(
  11.                 System.in));
  12.         int k;
  13.         int m = 0;
  14.         int num = 0;
  15.         int killed = 0;
  16.         while ((k = Integer.parseInt(read.readLine())) != 0) {
  17.             loop: for (m = k + 1;;) {
  18.                 num = 0;
  19.                 if (m % (k + 1) == 0 || (m - 1) % (k + 1) == 0) {
  20.                     if (m % (2 * k) == 0) {
  21.                         num = 2 * k - 1;
  22.                     } else {
  23.                         num = m % (2 * k) - 1;
  24.                     }
  25.                     int len = 2 * k;
  26.                     for (killed = 0; killed < k; killed++) {
  27.                         if (num < k) {
  28.                             m++;
  29.                             continue loop;
  30.                         }
  31.                         len--;
  32.                         num--;
  33.                         num = (num + 1 + m) % len - 1;
  34.                         if (num == -1) {
  35.                             num = len - 1;
  36.                         }
  37.                     }
  38.                     break;
  39.                 } else {
  40.                     m += k - 1;
  41.                 }
  42.             }
  43.             System.out.println(m);
  44.         }
  45.     }
  46. }

题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=1012

思路:约瑟夫环,讨论里面推荐打表在提交,我试了一下我的程序,遗憾的是,还是超时了,只能打表搞。。。虽然在我机子上跑不能说秒出,但还是挺快的。时间复杂度已经O(n^2)了,哎。。。

 

 

【上篇】
【下篇】

抱歉!评论已关闭.