最近心态是真的不好,微信小程序老出bug我查资料都头疼了。主要没学过基础。真的烦。大创真的心累啊。没跟到大佬。继续加油吧。
这题是一个模拟,并不涉及到洗牌的算法。但是我一开始老师报错,原来是把循环次数写错了,K写成了N。估计以后刷题时间也少了。希望一天一题能把PAT刷完,再acwing算法基础刷完就心满意足了。毕竟不是搞竞赛的。相比于代码题,还是更喜欢做数学题,哈哈。选错专业了。开个玩笑了。希望我心态更好吧。开心面对压力,
#include <iostream>
using namespace std;
const int N = 54;
char mp[5] = {'S', 'H', 'C', 'D', 'J'};
int start[N+1], end1[N+1];
int next1[N+1];
int main()
{
int K;
cin >> K;
for(int i = 1; i <= N; i++){
start[i] = i;
}
for(int i = 1; i <= N; i++){
cin >> next1[i];
}
for(int j = 0; j < K; j++){
for(int i = 1; i <= N; i++){
end1[next1[i]] = start[i];
}
for(int i = 1; i <= N; i++){
start[i] = end1[i];
}
}
for(int i = 1; i <= N; i++){
if(i != 1) cout << " ";
start[i]--;
printf("%c%d", mp[start[i] / 13], start[i] % 13 + 1);
}
return 0;
}