1042. Shuffling Machine (20)

1042. Shuffling Machine (20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue

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

提交代码


解析: 题目中已经给出数组下标和值的一一影射关系,只需要运用HASH思想,将值作为下标,将下标作为i值进行转换存储,接下来就简单了,本题初看很难,其实多想几遍,发现其原理很简单。

/*************************************************************************> File Name: 1042.c> Author: YueBo> Mail: yuebowhu@163.com> Created Time: Tue 16 May 2017 09:34:04 PM CST************************************************************************/#include <stdio.h>
#include <string.h>struct node
{char elem[8];
};int main()
{int K, i, j, val_tmp;int position[55];struct node cards[55], cards_tmp[55];scanf("%d", &K);for (i = 1; i <= 54; i++){scanf("%d", &val_tmp);position[val_tmp] = i;}for (i = 1; i <= 13; i++){sprintf(cards[i].elem, "S%d", i);sprintf(cards[13+i].elem, "H%d", i);sprintf(cards[13+13+i].elem, "C%d", i);sprintf(cards[13+13+13+i].elem, "D%d", i);}sprintf(cards[13*4+1].elem, "J1");sprintf(cards[13*4+2].elem, "J2");for (i = 1; i <= 54; i++)strcpy(cards_tmp[i].elem, cards[i].elem);for (j = 0; j < K; j++){for (i = 1; i <= 54; i++)strcpy(cards[i].elem, cards_tmp[position[i]].elem);for (i = 1; i <= 54; i++)strcpy(cards_tmp[i].elem, cards[i].elem);}for (i = 1; i <= 54; i++){printf("%s", cards[i].elem);if (i != 54)printf(" ");}printf("\n");return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode 73 矩阵置零 C++ 两种解法

leetcode 73 两种解法~~&#xff0c;没有一个是我想出来的&#xff0c;哈哈~~ one class Solution { public:void setZeroes(vector<vector<int>>& matrix) {int mmatrix.size(),nmatrix[0].size();bool colfalse,rowfalse;for(int i0;i!m;i){if(!matrix[i][0…

JS第一课

<!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title></head><body><script>///*1,它可以做什么。a, 动态改变页面的内容和页面外观b,验证表单数据&#xff0c;各大网站的注册验证功能可以通…

排序二叉树

排序二叉树 二叉树&#xff1a;作为基本数据结构的一种&#xff0c;是红黑树&#xff0c;B树等树形结构的基础。而排序二叉树是按照二叉树的结构来组织的。在本文中采用链表结构来创建二叉树。排序二叉树的    基本原理&#xff1a; 排序二叉树是将归并排序的基本思想构建二…

1020. Tree Traversals (25)

1020. Tree Traversals (25) 时间限制400 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueSuppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder traversal sequences, you are supposed to out…

leetcode 387 C++数组做法

leetcode 387 C数组做法 class Solution { public:int firstUniqChar(string s) {int ns.length();if(n0) return -1;int table[26]{0};for(int i0;i!n;i){table[s[i]-a];}for(int i0;i!n;i){if(table[s[i]-a]1)return i;}return -1;} };END

获取Class对象方式

在java中&#xff0c;每个class都有一个相应的Class对象&#xff0c;当编写好一个类&#xff0c;编译完成后&#xff0c;在生成的.class文件中&#xff0c;就产生一个Class对象&#xff0c;用来表示这个类的类型信息。获得Class实例的三种方式&#xff1a; 1). 利用对象调用get…

前端学习(1002):简洁版滑动下拉菜单问题解决

快速滑动 不停切换 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><scrip…

js bom and dom

以下的代码只是一些小的例子。我画了一张图来总结js大的结构 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script>//Point 1 delayer and timer (BOM browser Object Model)var delayer;var tim…

leetcode 383 赎金信 C++

自己想的&#xff0c;一个思路两个解法&#xff0c;从字符串中的第一个唯一字符的思路搬过来的 one class Solution { public:bool canConstruct(string ransomNote, string magazine) {int table2[26]{0};for(int i0;i!magazine.length();i){table2[magazine[i]-a];}for(int …

Win32下 Qt与Lua交互使用(二):在Lua脚本中使用Qt类

话接上篇。成功配置好QtLuatoLua后&#xff0c;我们可以实现在Lua脚本中使用各个Qt的类。直接看代码吧。 #include "include/lua.hpp" #include <QWidget> #include <QApplication> #include <QFile> #include <QDebug>static int tolua_new…

1099. Build A Binary Search Tree (30)

1099. Build A Binary Search Tree (30) 时间限制100 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueA Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains o…

mysql列属性auto(mysql笔记四)

常见的的是一个字段不为null存在默认值 没值得时候才去找默认值&#xff0c;可以插入一个null到 可以为null的行里 主键&#xff1a;可以唯一标识某条记录的字段或者字段的集合 主键设置 主键不可为null,声明时自动设置为not null 字段上设置 字段名 primary key定义完字段后 …

详解html结构之间的各个关系,层级关系(以列表为例)

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>层级关系查找元素</title></head><body><div id "div">hello<ul id ""><li>li1</li><li>li2</…

leetcode 242 有效的字母异位词 C++

和赎金信的思路一样 我想我本科时光是找不到女朋友了&#xff0c;哪怕是一个异性的好朋友也不会有了&#xff0c;男女比例4&#xff1a;1&#xff0c;哼 class Solution { public:bool isAnagram(string s, string t) {int table2[26]{0};for(char a:t){table2[a-a];}for(char…

1058. A+B in Hogwarts (20)

1058. AB in Hogwarts (20) 时间限制50 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueIf you are a fan of Harry Potter, you would know the world of magic has its own currency system -- as Hagrid explained it to Harry, "Seventeen silve…

jquery post 同步异步总结

最近在测试,发现有些效果不对,最后发现是post的执行顺序问题,所以研究了下,写了以下总结 1.post被请求多次,解决方法: 连接加入随机数 rand""Math.random() $.post("/Control/webControl.ashx?rand "Math.random(), { Method: "LoginIn", Parem…

js对html节点的操作

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style></style><script>function copy(){//克隆节点//1&#xff0c;得到要克隆的divvar div document.body.firstElementChild;//2,复制…

leetcode 141 环形链表 C++

两种方法一个空间O(n)&#xff0c;另一个O(1)&#xff0c;时间都是O(n)。 one class Solution { public:bool hasCycle(ListNode *head) {unordered_set<ListNode*>set;while(head){if(set.count(head))return true;set.insert(head);headhead->next;}return false;}…

1056. Mice and Rice (25)

1056. Mice and Rice (25) 时间限制100 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueMice and Rice is the name of a programming contest in which each programmer must write a piece of code to control the movements of a mouse in a given map…

Java poi读取,写入Excel2003

Java poi读取,写入Excel2003 相关阅读&#xff1a;poi读写Excel2007:http://www.cnblogs.com/gavinYang/p/3576741.htmljxl读写excel2003/2007:http://www.cnblogs.com/gavinYang/p/3576819.html package com.gavin.operational.excle;import java.io.FileInputStream; import …