PAT甲级A1042 Shuaffling Machine
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相关推荐
- PAT甲级 A1042
PAT甲级 A1042 题目详情 1042 Shuffling Machine (20分) Shuffling is a procedure used to randomize a deck of p ...
- PAT甲级1042 Shuffling Machine:[C++题解]模拟、哈希表、洗牌机
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:序列置换. 这里用到函数memcpy()用于数组复制,用法memcpy(dest, src, sizeof dest); 把src数组 ...
- PAT甲级 1042 Shuffling Machine 模拟洗牌 map的使用
Solution: 题目要求:要去实现一个模拟洗牌的程序.具体要求如下: (1)初始的排序已经给出. (2)要求洗k次牌,并输出最终排序. (3)给出54个数字,如果第i个位置上的数字为j,就要把第i ...
- 【PAT甲级】A1001-A1050刷题记录
文章目录 A1001 A+B Format (20 分) 0.25 ★(一元多项式加法) A1002 A+B for Polynomials (25 分) 0.21 (单源最短路Dijkstra+边权 ...
- PAT甲级训练合集(1-70)
本章题解跳转 考点 P1001 数字的数组表示和处理 P1002 多项式的数组表示和处理 P1003 深度优先搜素 P1004 深度优先搜素 P1005 哈希表 P1006 P1007 数组子区间求和 ...
- PAT甲级1042~1055
前言:距离四级考试剩23天,PAT甲级考试剩24天 对PAT甲级练习题做总结 1042 Shuffling Machine (20 分) 题目大意: 重复给出排列方式,把放在下标 i i i的牌调换到 ...
- 【置顶】【PAT】PAT甲级题目及分类总结(持续更新ing)
在2019年3月底,我决定考浙大计院,经过一个月还算凑合的学习,痛定思痛,决定整理整理自己的博客. 粗略估计,大概一个月的时间里我AC了31道题,大概用时40个小时上下,毕竟还要把大部分时间花在笔试上 ...
- PAT甲级(Advanced Level)真题--1046 Sharing
PAT甲级(Advanced Level)真题–1046 Sharing 通过:648 提交:1138 通过率:56% To store English words, one method is to ...
- 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 ...
最新文章
- 大家有没有推荐不错开源的小程序商城?这几个不要错过
- 12.1 LNMP架构介绍;12.2 MySQL安装;12.3-2.4 PHP安装(上下);12.5
- mac os10.11上使用proxychains
- ASP.NET中Image控件不能自动刷新
- 关于Unity中的UGUI优化,你可能遇到这些问题
- 这些年书读太少,没有读进去
- CodeForces - 1551F Equidistant Vertices(暴力+dp)
- Solaris 的防火墙ipfilter设置
- VisualSVN Server 的安装(windows版本)
- const C++ 用法总结
- HUE与HBase的集成
- day15-CSS内容补充之overflow
- 什么是有监督学习?看这里。
- 抢购软件使用方法(如何开发抢购软件)
- 【存储】Android中的8种数据存储方式
- 如何自己赚取csdn金币
- android iphone css,css能判断手机是安卓还是ios吗?
- 算法实现: OTP(One-Time Pad) 一次一密密码本 加解密
- 高通平台开发系列讲解(外设篇)高通平台Camera摄像头驱动移植
- HDOJ(HDU) 1862 EXCEL排序(类对象的快排)