• uva


    类型:循环走步

     1 #include <iostream>
     2 #include <sstream>
     3 #include <cstdio>
     4 #include <cstring>
     5 #include <cmath>
     6 #include <string>
     7 #include <vector>
     8 #include <set>
     9 #include <cctype>
    10 #include <algorithm>
    11 #include <cmath>
    12 #include <deque>
    13 #include <queue>
    14 #include <map>
    15 #include <stack>
    16 #include <list>
    17 #include <iomanip>
    18 
    19 using namespace std;
    20 
    21 #define INF 0x7fffffff
    22 #define maxn 1010
    23 typedef unsigned long long ull;
    24 
    25 
    26 int arr[maxn];
    27 int N, k, m;
    28 
    29 //d也能表示顺时针还是逆时针,顺时针-1,逆时针1
    30 //注意此处的算法
    31 int go(int t, int p, int d)
    32 {
    33     while(t--)
    34     {
    35         do{
    36             ///
    37             p = (p+d+N-1)%N+1;
    38         }
    39         while(!arr[p]);
    40     }
    41     return p;
    42 }
    43 
    44 int main()
    45 {
    46     while(scanf("%d%d%d", &N, &k, &m) && (N+k+m))
    47     {
    48         memset(arr, 0, sizeof(arr));
    49         for(int i = 1; i <= N; i++)
    50             arr[i] = i;
    51 
    52         int left = N;//剩下的人数
    53         int p1 = 0, p2 = N+1;//位置标记
    54 
    55         while(left)
    56         {
    57             p1 = go(k, p1, 1);
    58             p2 = go(m, p2, -1);
    59             arr[p1] = arr[p2] = 0;
    60             //注意此处的输出优化
    61             printf("%3d", p1);  left--;
    62             if(p1 != p2)
    63             {
    64                 printf("%3d", p2);  left--;
    65             }
    66             if(left)    printf(",");
    67                 else printf("
    ");
    68         }
    69     }
    70     return 0;
    71 }
    72             
  • 相关阅读:
    2.4 自给自足的脚本:位于第一行的#!
    2.3 一个简单的脚本
    2.2 为什么要使用Shell脚本
    JSON 字符串 与 java 对象的转换
    ajax异步提交文件
    jquery选择器
    发现前端框架 bui-min.js
    学习hsf
    Git详解
    java学习材料
  • 原文地址:https://www.cnblogs.com/LLGemini/p/3979783.html
Copyright © 2020-2023  润新知