PAT A1042. 洗牌机器

2024-06-20 03:04
文章标签 机器 pat 洗牌 a1042

本文主要是介绍PAT A1042. 洗牌机器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

有54张牌,编号为1~54,初始按编号从小到大排列。另外,这些牌按初始排列给定花色,即从左至右分别为13张S、13张H、13张C、13张D、2张J,如下所示:
s1, S2,…., S13,H1, H2,…, H13,C1, C2,.…, C13,D1, D2,…, D13,J1, J2
接下来执行一种操作,这种操作将牌的位置改变为指定位置。例如有5张牌S3, H5, C1,D13,J2,然后给定操作序列{4,2,5,3,1},因此把S3放到4号位、把H5放到2号位、C1放到5号位、D13放到3号位、J2放到1号位,于是就变成了J2,H5, D13, S3,C1。
现在需要将这种操作执行K次,求最后的排列结果。例如上面的例子中,如果执行第二次操作,那么序列J2, H5, D13,S3,C1就会变成C1,H5,S3,J2,D13。
 

输入样例

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


输出样例


S7 C11 C10 C12 S1 H7 H8 H9 D8 D9 S11 S12 S13 D10 D11 D12 S3 S4 S6 S10 HI H C13 D2 D3 D4 H6 H3 D13 J1 J2 CI C2 C3 C4 DI S5 H5 HI1 H12 C6 C7 C8 C9 S2 S8 S9 H1O D5 D6 D7 H4 H13 C5

学习收获

        ①将处理后的数组再一次赋值给原先的数组,这样可以复用数组。

        ②输出数组时,要想最后没有空格,可以先输出空格:除了第一个元素前面不输出空格,其余元素前面输出空格。

        ③ 一般来讲,题目中有大量数字,并且题目输出的数字是有规律时,需要找到数字间的规律。例如,这里找花色的规律:假设牌号为x,花色数组为mp[]={‘S’,‘H’,‘C’,‘D’,‘J’},则对应关系为mp[(x-1)/13]。花色下的编号为:(x-1)%13 +1。

代码实现 

#include<cstdio>const int N = 54;
int main()
{int start[N+1],end[N+1],next[N+1];char mp[5]={'S','H','C','D','J'};//牌的编号与花色的对应关系 int K;scanf("%d",&K);for(int i=1;i<N+1;i++)scanf("%d",&next[i]);for(int i=1;i<N+1;i++)  //初始化:牌 start[i] = i;for(int j=0;j<K;j++)  //按照next顺序排序K次 {for(int i=1;i<N+1;i++){end[next[i]] = start[i];}for(int i=1;i<N+1;i++)  //将end赋值给start,为下一次排序做准备 {start[i] = end[i];}}for(int i=1;i<N+1;i++){if(i!=1)     //输出数组元素时,这样处理,最后没有空格 printf(" ");start[i]--;printf("%c%d",mp[start[i]/13],start[i]%13+1);  //编号与花色以及所属花色编号的转换 }return 0;	
} 

这篇关于PAT A1042. 洗牌机器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1076916

相关文章

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

【机器学习】高斯网络的基本概念和应用领域

引言 高斯网络(Gaussian Network)通常指的是一个概率图模型,其中所有的随机变量(或节点)都遵循高斯分布 文章目录 引言一、高斯网络(Gaussian Network)1.1 高斯过程(Gaussian Process)1.2 高斯混合模型(Gaussian Mixture Model)1.3 应用1.4 总结 二、高斯网络的应用2.1 机器学习2.2 统计学2.3

✨机器学习笔记(二)—— 线性回归、代价函数、梯度下降

1️⃣线性回归(linear regression) f w , b ( x ) = w x + b f_{w,b}(x) = wx + b fw,b​(x)=wx+b 🎈A linear regression model predicting house prices: 如图是机器学习通过监督学习运用线性回归模型来预测房价的例子,当房屋大小为1250 f e e t 2 feet^

【机器学习-一-基础概念篇】

机器学习 定义分类算法 应用 定义 机器学习最早是被Arthur Samuel 提出的一个概念,指计算机无需明确编程即可学习的研究领域。1950年他发明的跳棋程序,这个人机对弈游戏让他的声名鹊起,机器学习这个概念才进入大众的是视线。 在这个跳棋程序里,他编程了一种算法,这个程序与Arthur下了数万次跳棋,计算机逐渐学会了下在哪里有更大的可能会赢得比赛,哪里会输,通过这种方法,最

机器学习之监督学习(三)神经网络

机器学习之监督学习(三)神经网络基础 0. 文章传送1. 深度学习 Deep Learning深度学习的关键特点深度学习VS传统机器学习 2. 生物神经网络 Biological Neural Network3. 神经网络模型基本结构模块一:TensorFlow搭建神经网络 4. 反向传播梯度下降 Back Propagation Gradient Descent模块二:激活函数 activ

参会邀请 | 第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)

第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)将于2024年9月13日-15日在中国张家口召开。 MVIPIT 2024聚焦机器视觉、图像处理与影像技术,旨在为专家、学者和研究人员提供一个国际平台,分享研究成果,讨论问题和挑战,探索前沿技术。诚邀高校、科研院所、企业等有关方面的专家学者参加会议。 9月13日(周五):签到日 9月14日(周六):会议日 9月15日(周日

线性代数|机器学习-P35距离矩阵和普鲁克问题

文章目录 1. 距离矩阵2. 正交普鲁克问题3. 实例说明 1. 距离矩阵 假设有三个点 x 1 , x 2 , x 3 x_1,x_2,x_3 x1​,x2​,x3​,三个点距离如下: ∣ ∣ x 1 − x 2 ∣ ∣ 2 = 1 , ∣ ∣ x 2 − x 3 ∣ ∣ 2 = 1 , ∣ ∣ x 1 − x 3 ∣ ∣ 2 = 6 \begin{equation} ||x

集群环境下为雪花算法生成全局唯一机器ID策略

雪花算法是生成数据id非常好的一种方式,机器id是雪花算法不可分割的一部分。但是对于集群应用,让不同的机器自动产生不同的机器id传统做法就是针对每一个机器进行单独配置,但这样做不利于集群水平扩展,且操作过程非常复杂,所以每一个机器在集群环境下是一个头疼的问题。现在借助spring+redis,给出一种策略,支持随意水平扩展,肥肠好用。 大致策略分为4步: 1.对机器ip进行hash,对某一个(大于