1042 Shuffling Machine (20 分)
思路
提前对矩阵进行多次变换
代码
#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);
}
}