zoukankan      html  css  js  c++  java
  • 幸运者

    幸运者

    Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
    Total Submission(s) : 50   Accepted Submission(s) : 29

    Font: Times New Roman | Verdana | Georgia

    Font Size: ← →

    Problem Description

    有N个人围成一圈, 并依次编号 1~N,从编号为 1 的人开始循环报数,按顺时针方向报数,凡报到M的人就退出圈子,剩下的人继续报数,最后剩下的一个人就是幸运者。如果你想成为最后一个幸运儿,请问开始时应该站在什么位置?(设 3<=N<=50,1<=M<=N)

    Input

    本题有多个测试用例
    一个用例输入一行2个数,第一个数为开始时的人数 N,第二个数为报到的数M。

    Output

    输出为一行,输出为幸运儿的开始时位置

    Sample Input

    30 7

    Sample Output

    23

    解释:

    和约瑟夫环类似,数据量不是很大,用模拟就可以过了。模拟报数,模拟出队,在没在队列中,用数组标记。

     1 #include<bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 const int N = 52;
     6 
     7 int main () {
     8   int n, m;
     9 
    10   while (cin >> n >> m) {
    11     bool flag[N];
    12     memset(flag, 0, sizeof(flag));
    13     int tp = 0, ss = 1;
    14     int t = n;
    15     while (t > 1) {
    16       if (!flag[tp]) {
    17         
    18         if (ss == m) {
    19           ss = 1;
    20           t--;
    21           flag[tp] = true;
    22         } else {
    23             ss++;
    24         }
    25         
    26       }
    27       tp = (tp + 1) % n;
    28     }
    29     while(flag[tp]) tp = (tp + 1) % n;
    30     printf("%d
    ", tp + 1);
    31   }
    32   return 0;
    33 }
    View Code
  • 相关阅读:
    asp.net 学习连接
    学习笔记一
    windows 2008 r2 AD密码策略
    Windows Server 2008 R2之活动目录回收站
    用java 调用 .net 自定义的 Soap WEB Service
    昆明赶街时间
    Windows Server 2008 R2 AD的备份和恢复
    AD 自定义属性
    AD、IIS、asp.net
    wsgen与wsimport命令说明
  • 原文地址:https://www.cnblogs.com/gznb/p/11208001.html
Copyright © 2011-2022 走看看