• 九度oj 题目1188:约瑟夫环


    题目描述:

        N个人围成一圈顺序编号,从1号开始按1、2、3......顺序报数,报p者退出圈外,其余的人再从1、2、3开始报数,报p的人再退出圈外,以此类推。
        请按退出顺序输出每个退出人的原序号。

    输入:

    包括一个整数N(1<=N<=3000)及一个整数p。

    输出:

    测试数据可能有多组,对于每一组数据,
    按退出顺序输出每个退出人的原序号。

    样例输入:
    7 3
    样例输出:
    3 6 2 7 5 1 4

    模拟一下即可,利用next数组模拟环形,节省时间
     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 #include <iostream>
     5 using namespace std;
     6 int ans[3002];
     7 int next[3002];
     8 
     9 int main(int argc, char const *argv[])
    10 {
    11     int n, p;
    12     while(scanf("%d %d",&n,&p) != EOF) {
    13         for(int i = 0; i < 3002; i++) {
    14             next[i] = i+1;
    15         }
    16         next[n-1] = 0;
    17         
    18         int t = 0;
    19         int current = n-1;
    20         int lasc = n-2;
    21         int bao = -1;
    22         do {
    23             lasc = current;
    24             current = next[current];
    25             bao = (bao+1) % p;
    26             if(bao == p-1) {
    27                 ans[t++] = current+1;
    28                 next[lasc] = next[current];
    29             }
    30             
    31         } while(t < n) ;
    32         
    33         printf("%d",ans[0]);
    34         for(int i = 1; i < n; i++) {
    35             printf(" %d",ans[i]);
    36         }
    37         puts("");
    38     }        
    39     return 0;
    40 }
  • 相关阅读:
    WPF 柱状图显示数据
    WPF 寻找控件模板中的元素
    WPF 寻找数据模板中的元素
    WPF VisualTreeHelper的使用
    WPF依赖项属性不需要包装属性也可以工作
    WPF依赖属性对内存的使用方式
    WPF Binding Path妙用
    WPF Binding Path妙用代码实现
    WPF Binding妙处-既无Path也无Source
    WPF ListView的使用
  • 原文地址:https://www.cnblogs.com/jasonJie/p/5866528.html
Copyright © 2020-2023  润新知