PAT甲级A1042 Shuaffling Machine

题目:

Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techniques are seen as weak, and in order to avoid “inside jobs” where employees collaborate with gamblers by performing inadequate shuffles, many casinos employ automatic shuffling machines. Your task is to simulate a shuffling machine.

The machine shuffles a deck of 54 cards according to a given random order and repeats for a given number of times. It is assumed that the initial status of a card deck is in the following order:

S1, S2, …, S13,
H1, H2, …, H13,
C1, C2, …, C13,
D1, D2, …, D13,
J1, J2
where “S” stands for “Spade”, “H” for “Heart”, “C” for “Club”, “D” for “Diamond”, and “J” for “Joker”. A given order is a permutation of distinct integers in [1, 54]. If the number at the i-th position is j, it means to move the card from position i to position j. For example, suppose we only have 5 cards: S3, H5, C1, D13 and J2. Given a shuffling order {4, 2, 5, 3, 1}, the result will be: J2, H5, D13, S3, C1. If we are to repeat the shuffling again, the result will be: C1, H5, S3, J2, D13.

Input Specification:
Each input file contains one test case. For each case, the first line contains a positive integer K (≤20) which is the number of repeat times. Then the next line contains the given order. All the numbers in a line are separated by a space.

Output Specification:
For each test case, print the shuffling results in one line. All the cards are separated by a space, and there must be no extra space at the end of the line.

Sample Input:
2
36 52 37 38 3 39 40 53 54 41 11 12 13 42 43 44 2 4 23 24 25 26 27 6 7 8 48 49 50 51 9 10 14 15 16 5 17 18 19 1 20 21 22 28 29 30 31 32 33 34 35 45 46 47

Sample Output:
S7 C11 C10 C12 S1 H7 H8 H9 D8 D9 S11 S12 S13 D10 D11 D12 S3 S4 S6 S10 H1 H2 C13 D2 D3 D4 H6 H3 D13 J1 J2 C1 C2 C3 C4 D1 S5 H5 H11 H12 C6 C7 C8 C9 S2 S8 S9 H10 D5 D6 D7 H4 H13 C5

题目理解:
一个简单模拟,基本算是入门级水题,维护三个数组就可以解决。分别是洗牌顺序数组order[55],当前牌序now[55],下一组牌序next[55]。我使用了vector型数组,方便用next覆盖now,如果用静态数组需要循环赋值来覆盖,其实差不多

AC代码:

#include <bits/stdc++.h>
using namespace std;
char mp[5]={'S','H','C','D','J'};
int k,data;
vector<int> order(55),now(55),next(55);
int main()
{cin>>k;for(int i=1;i<=54;i++){cin>>order[i];now[i]=i;}while(k--){for(int i=1;i<=54;i++) next[order[i]]=now[i];now=next;}for(int i=1;i<=54;i++){if(i!=1) printf(" ");printf("%c%d",mp[(now[i]-1)/13],(now[i]-1)%13+1);}return 0;
}

PAT甲级A1042 Shuaffling Machine相关推荐

  1. PAT甲级 A1042

    PAT甲级 A1042 题目详情 1042 Shuffling Machine (20分) Shuffling is a procedure used to randomize a deck of p ...

  2. PAT甲级1042 Shuffling Machine:[C++题解]模拟、哈希表、洗牌机

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:序列置换. 这里用到函数memcpy()用于数组复制,用法memcpy(dest, src, sizeof dest); 把src数组 ...

  3. PAT甲级 1042 Shuffling Machine 模拟洗牌 map的使用

    Solution: 题目要求:要去实现一个模拟洗牌的程序.具体要求如下: (1)初始的排序已经给出. (2)要求洗k次牌,并输出最终排序. (3)给出54个数字,如果第i个位置上的数字为j,就要把第i ...

  4. 【PAT甲级】A1001-A1050刷题记录

    文章目录 A1001 A+B Format (20 分) 0.25 ★(一元多项式加法) A1002 A+B for Polynomials (25 分) 0.21 (单源最短路Dijkstra+边权 ...

  5. PAT甲级训练合集(1-70)

    本章题解跳转 考点 P1001 数字的数组表示和处理 P1002 多项式的数组表示和处理 P1003 深度优先搜素 P1004 深度优先搜素 P1005 哈希表 P1006 P1007 数组子区间求和 ...

  6. PAT甲级1042~1055

    前言:距离四级考试剩23天,PAT甲级考试剩24天 对PAT甲级练习题做总结 1042 Shuffling Machine (20 分) 题目大意: 重复给出排列方式,把放在下标 i i i的牌调换到 ...

  7. 【置顶】【PAT】PAT甲级题目及分类总结(持续更新ing)

    在2019年3月底,我决定考浙大计院,经过一个月还算凑合的学习,痛定思痛,决定整理整理自己的博客. 粗略估计,大概一个月的时间里我AC了31道题,大概用时40个小时上下,毕竟还要把大部分时间花在笔试上 ...

  8. PAT甲级(Advanced Level)真题--1046 Sharing

    PAT甲级(Advanced Level)真题–1046 Sharing 通过:648 提交:1138 通过率:56% To store English words, one method is to ...

  9. PAT甲级(Advanced Level)真题-- 1062 To Buy or Not to Buy

    PAT甲级(Advanced Level)真题-- 1062 To Buy or Not to Buy 通过:643 提交:1220 通过率:52% Eva would like to make a ...

最新文章

  1. 大家有没有推荐不错开源的小程序商城?这几个不要错过
  2. 12.1 LNMP架构介绍;12.2 MySQL安装;12.3-2.4 PHP安装(上下);12.5
  3. mac os10.11上使用proxychains
  4. ASP.NET中Image控件不能自动刷新
  5. 关于Unity中的UGUI优化,你可能遇到这些问题
  6. 这些年书读太少,没有读进去
  7. CodeForces - 1551F Equidistant Vertices(暴力+dp)
  8. Solaris 的防火墙ipfilter设置
  9. VisualSVN Server 的安装(windows版本)
  10. const C++ 用法总结
  11. HUE与HBase的集成
  12. day15-CSS内容补充之overflow
  13. 什么是有监督学习?看这里。
  14. 抢购软件使用方法(如何开发抢购软件)
  15. 【存储】Android中的8种数据存储方式
  16. 如何自己赚取csdn金币
  17. android iphone css,css能判断手机是安卓还是ios吗?
  18. 算法实现: OTP(One-Time Pad) 一次一密密码本 加解密
  19. 高通平台开发系列讲解(外设篇)高通平台Camera摄像头驱动移植
  20. HDOJ(HDU) 1862 EXCEL排序(类对象的快排)

热门文章

  1. 开发小程序需要服务器吗?小程序服务器配置要求
  2. 安卓毕业设计- 基于Android的旅游计划APP
  3. C语言实现斐波那契数列的几种方法
  4. AI杠杆炒股机器人全自动平台
  5. 2018年算法工程师薪酬报告出炉:平均年薪50.21万,点燃寒冬的一把火
  6. linux高性能服务器编程书本总结
  7. 利用R语言对贷款客户作风险评估(下)——零膨胀回归分析
  8. 2019专业创业赛事活动平台
  9. 汇编语言学习之基本指令(上)
  10. 词性标注集句和句法分析标注集