zoukankan      html  css  js  c++  java
  • 1042 Shuffling Machine (20分)

     1 #include <iostream>
     2 const int N = 54;
     3 using namespace std;
     4 int main()
     5 {
     6     char type[5] = { 'S','H','C','D','J' };//0-12:S, 13-25:H, 26-38:C, 39-51:D, 52-53:J
     7     int k,res[N],origin[N];//第i个位置的数据应该放到下标为origin[i]的位置,假如origin[0]为36,则第36个位置(下标为36)应该放置第0个位置的数据
     8     cin >> k;
     9     for (int i = 0; i < N; ++i) origin[i] = i;
    10     int order[N];
    11     for (int i = 0; i < N; ++i) cin >> order[i];
    12     for (int i = 0; i < k; ++i)
    13     {
    14         for (int j = 0; j < N; ++j)
    15             res[order[j]-1] = origin[j];//比如order[0]是30,则把origin[0]放到res[29]
    16         for (int z = 0; z < N; ++z)//下一次循环,将res的结果作为origin的新结果
    17             origin[z] = res[z];
    18     }
    19     for (int i = 0; i < N; ++i)
    20     {
    21         int t = res[i];
    22         cout << type[t / 13] << t % 13+1;
    23         if (i != N-1)
    24             cout << ' ';
    25     }
    26     return 0;
    27 }

     由于是根据res的值来输出的,res值的取值范围是0到53,即数组下标范围,所以origin存的是下标,origin直接给res赋值,res存的也是下标,order范围是1到54,用的时候减去1,当成下标使用,所以就可以统一把下标当成“位置”了。

  • 相关阅读:
    终端提示符路径长度设置
    linux ssh服务器
    kail-linux my need
    elasticsearch的marvel
    VPS折腾
    Ubuntu 系统密码相关问题
    Pycharm 使用配置
    python集成开发工具
    Codeforces Round #554 (Div. 2) 选做
    Codeforces Forethought Future Cup Elimination Round 选做
  • 原文地址:https://www.cnblogs.com/2020R/p/13151807.html
Copyright © 2011-2022 走看看