PAT Grade A-Analog Type-1042 Shuffling Machine Problem Solving Ideas

1042 Shuffling Machine (20 分)

Insert picture description here

Ideas

Transform the matrix multiple times in advance

Code

#include <bits/stdc++.h>
using namespace std;

int main()
{
    
    

    char mp[5] = {
    
    'S','H','C','D','J'};
    int n;
    scanf("%d",&n);
    int num[54];
    
    for(int i=0;i<54;i++)  //替换顺序
        scanf("%d",&num[i]);

    int pai[54];
    for(int i=0;i<54;i++)  //牌默认顺序
        pai[i]= i+1;
        
    int next[54];
    for (int i =0;i<n;i++)
    {
    
        
        for (int j = 0;j<54;j++)
            next[num[j]-1] = pai[j];
        for (int j = 0;j<54;j++)
            pai[j] = next[j];
    }
    
    for(int i=0;i<54;i++)
    {
    
     
        if(i!=0)
            cout<<" ";
        printf("%c%d",mp[(pai[i]-1)/13], (pai[i]-1)%13+1);
    }
}

Guess you like

Origin blog.csdn.net/weixin_43999137/article/details/113864938
Recommended