1042. Shuffling Machine (20)

时间:2023-02-22 21:07:30

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

题目大意:看了许久,没明白,参考了下别人的才明白。原先的序列是a {1,2,3,4,5},需要根据输入的b {4,2,5,3,1}来洗牌,具体洗牌过程是,b[i]=a[i],这样得到的结果是序列{5,2,4,1,3}即等于{J2,H5,D13,S3,C1}

#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int max=54;
int a[max],b[max],c[max];
int n,i,j;
scanf("%d",&n);
for(i=0;i<max;i++){
a[i]=i;
scanf("%d",b+i);
}
while(n--){
for(i=0;i<max;i++){
c[i]=a[i];
}
for(j=0;j<max;j++){
a[b[j]-1]=c[j];
}
}
for(j=0;j<max;j++){
int k = a[j]/13;
if(k==0){
printf("S%d",a[j]%13+1);
}else if(k==1){
printf("H%d",a[j]%13+1);
}else if(k==2){
printf("C%d",a[j]%13+1);
}else if(k==3){
printf("D%d",a[j]%13+1);
}else if(k==4){
printf("J%d",a[j]%13+1);
}
if(j+1==max){
printf("\n");
}else{
printf(" ");
}
}
return 0;
}

  

1042. Shuffling Machine (20)的更多相关文章

  1. PAT 1042&period; Shuffling Machine &lpar;20&rpar;

    1042. Shuffling Machine (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Shu ...

  2. PAT 甲级 1042 Shuffling Machine &lpar;20 分&rpar;(简单题)

    1042 Shuffling Machine (20 分)   Shuffling is a procedure used to randomize a deck of playing cards. ...

  3. PAT 1042 Shuffling Machine &lpar;20 分&rpar;

    1042 Shuffling Machine (20 分)   Shuffling is a procedure used to randomize a deck of playing cards. ...

  4. PAT &lpar;Advanced Level&rpar; Practice 1042 Shuffling Machine &lpar;20 分&rpar; 凌宸1642

    PAT (Advanced Level) Practice 1042 Shuffling Machine (20 分) 凌宸1642 题目描述: Shuffling is a procedure us ...

  5. 1042&period; Shuffling Machine &lpar;20&rpar; - sstream实现数字转字符串

    题目例如以下: Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffli ...

  6. PAT Advanced 1042 Shuffling Machine &lpar;20 分&rpar;(知识点:利用sstream进行转换int和string)

    Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techn ...

  7. PAT&lpar;A&rpar; 1042&period; Shuffling Machine &lpar;20&rpar;

    Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techn ...

  8. 1042 Shuffling Machine &lpar;20分&rpar;&lpar;水&rpar;

    Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techn ...

  9. 【PAT甲级】1042 Shuffling Machine &lpar;20 分&rpar;

    题意: 输入洗牌次数K(<=20),输入54张牌每次洗入的位置(不是交换的位置),输出洗好的牌. AAAAAccepted code: #define HAVE_STRUCT_TIMESPEC ...

随机推荐

  1. Android实现文章+评论(MVP,RxJava,Dagger2,ButterKnife)

    简介 这个项目主要有两个功能,一个加载网页/文章,另一个用来显示评论.并应用了MVP模式,Dagger2.RxJava.ButterKnife等开源框架.效果图如下: 结构 首先来看一下布局文件: & ...

  2. 模拟退火算法求解旅行商问题(附c和matlab源代码)

    前几天在做孔群加工问题,各种假设到最后就是求解旅行商问题了,因为原本就有matlab代码模板所以当时就改了城市坐标直接用了,发现运行速度惨不忍睹,最后用上了两个队友的电脑一起跑.这次模拟结束后在想用c ...

  3. &lbrack;译&rsqb;对 AngularJS 模板的A&sol;B测试

    编者按:本文翻译自 Andrei Bondarev 在 Medium 上发布的"A/B Testing your AngularJS Templates ",Andrei 是一名工 ...

  4. pro git 使用积累

    http://www.zhihu.com/question/20070065 git相关问题的收集 Git 是 Linux 之父 Linus Trovalds,为管理 Linux 内核代码而建立的,被 ...

  5. ScalaTour 2&period;函数

    /** * 1. case class与模式匹配 */ object TestFunction extends App{ def value(expr:Expr): Int = expr match ...

  6. iOS-OpenGLES 简单渲染

     UIImage *showImage = [UIImage imageNamed:, , showImage.size.width, showImage.size.height);     ) fo ...

  7. thymeleaf标签必须由匹配的结束标记终止

    问题描述 springboot使用Thymeleaf标签时会报元素类型必须由匹配的结果标记终止. 如下所示 如果我们一个个的给这些元素后面加上终止标记也是件很麻烦的事~~~~ 解决办法 方法一: 在p ...

  8. linux查内存操作:cat &sol;proc&sol;meminfo

    https://www.cnblogs.com/zhuiluoyu/p/6154898.html cat /proc/meminfo

  9. Java 容器之 Connection栈队列及一些常用

    集合家族图 ---|Collection: 单列集合 ---|List: 有存储顺序 , 可重复 ---|ArrayList: 数组实现 , 查找快 , 增删慢 ---|LinkedList: 链表实 ...

  10. hdu 5666 Segment 俄罗斯乘法或者套大数板子

    Segment Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem ...