数组翻转(C++)

对于一副扑克牌,我们有多种不同的洗牌方式。一种方法是从中间某个位置分成两半,然后相交换,我们称之为移位(shift)。
比如原来的次序是 123456,从第 4 个位置交换,结果就是 561234。
这个方式其实就是数组的循环移位,为了多次进行这个操作,必须使用一种尽可能快的方法来编程实现。
在本题目中,还引入另外一种洗牌方式,就是把前一半(如果总数是奇数,就是(n−1)/2)牌翻转过来,这种操作称之为翻转(flip)。
在前面 shift 操作的结果上进行 flip,结果就是 165234。
当然,如果是实际的扑克牌,直接翻转会造成正反面混在一起的,我们就不管那么多了。

给定 n 张牌,初始次序为从 1 到 n,经过若干次的 shift 和 flip 操作后,结果会是什么样?

输入格式
第一行包含两个整数 n 和 k。n 表示牌的数目,k 表示下面要进行的操作数量。第二行包含 k 个整数 x,表示每个 shift 操作从第几个位置开始移位。在每一次 shift 操作后都接一个 flip 操作。

输出格式
计算经过给定的 k 次 shift 和 flip 操作后,各个位置的数值。
并按次序在一行上输出所有牌张的值,数值之间空格隔开。

数据范围
1≤n≤1000,
1≤k≤10,
1≤x≤n。

输入样例:
6 1
4

输出样例:
1 6 5 2 3 4

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int a[1010];
int main()
{int n,k,x;cin>>n>>k;for(int i=1;i<=n;i++)a[i]=i;while(k--){cin>>x;reverse(a+1,a+x+1);reverse(a+x+1,a+n+1);reverse(a+1,a+n+1);reverse(a+1,a+n/2+1);}for(int i=1;i<=n;i++)cout<<a[i]<<" ";return 0;
}

123456 翻转前4位为4321,翻转后2位为65, 432165翻转为561234
reverse(star,end+1); reverse(a,a+n+1);

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

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

相关文章

使用opencv把视频转换为灰色并且逐帧率转换为图片

功能介绍 使用opencv库把视频转换为灰色&#xff0c;并且逐帧率保存为图片到本地 启动结果 整体代码 import cv2 import osvc cv2.VideoCapture(test.mp4)if vc.isOpened():open, frame vc.read() else:open Falseos.makedirs("grayAll", exist_okTrue) i 0 wh…

冻结Prompt微调LM: T5 PET (a)

T5 paper: 2019.10 Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer Task: Everything Prompt: 前缀式人工prompt Model: Encoder-Decoder Take Away: 加入前缀Prompt&#xff0c;所有NLP任务都可以转化为文本生成任务 T5论文的初衷如…

智慧景区售票系统

随着智能科技的不断发展&#xff0c;智慧景区综合售票管理系统成为了现代化旅游业不可或缺的一部分。本文将为您推荐中顶售票管理系统&#xff0c;让您更好地了解如何利用智慧科技提升景区售票管理效率。 智慧科技助力景区管理 中顶售票管理系统是一款基于智能科技的综合销售管…

Git项目分支管理规范

一、分支管理 创建项目时&#xff0c;会针对不同环境创建两个常设分支(也可以算主分支&#xff0c;永久不会删除) master&#xff1a;生产环境的稳定分支&#xff0c;生产环境基于该分支构建。仅用来发布新版本&#xff0c;除了从release测试分支或 hotfix-*Bug修复分支进行m…

阿里云服务器地域所在位置的详细解释

2024年阿里云服务器地域分布表&#xff0c;地域指数据中心所在的地理区域&#xff0c;通常按照数据中心所在的城市划分&#xff0c;例如华北2&#xff08;北京&#xff09;地域表示数据中心所在的城市是北京。阿里云地域分为四部分即中国、亚太其他国家、欧洲与美洲和中东&…

使用Matplotlib绘制3d图形

目录 一&#xff1a;绘制一个正方体 二&#xff1a;绘制一个3*3*3魔方 为了绘制立体&#xff0c;主要用到Matplotlib中的一个函数voxels voxels([x, y, z, ], filled, facecolorsNone, edgecolorsNone, **kwargs) 绘制一组填充体素&#xff0c;所有体素在坐标轴上绘制为1x1x…

ARM 1.12

norflash与nandflash的区别&#xff1a; 一、NAND flash和NOR flash的性能比较 1、NOR的读速度比NAND稍快一些。 2、NAND的写入速度比NOR快很多。 3、NAND的4ms擦除速度远比NOR的5s快。 4、大多数写入操作需要先进行擦除操作。 5、NAND的擦除单元更小&#xff0c;相应的擦除电…

windows11+GPU1060安装强化学习环境之pytorch

这里大家看一个视频系列&#xff0c;讲得非常详细&#xff0c;链接在此&#xff1a;https://www.bilibili.com/video/BV1S5411X7FY?p28&vd_source3be739b673e1151850f4b8060ac78e1a 这里主要是说我遇到的问题以及解决办法。 首先&#xff0c;我的笔记本是有显卡的&#xf…

来来来 这份强化学习(Reinforcement Learning)知识点秘籍请收好

Look&#xff01;&#x1f440;我们的大模型商业化落地产品&#x1f4d6;更多AI资讯请&#x1f449;&#x1f3fe;关注Free三天集训营助教在线为您火热答疑&#x1f469;&#x1f3fc;‍&#x1f3eb; 强化学习(RL)是机器学习的一个分支&#xff0c;重点是训练算法通过与环境的…

Spring MVC学习之——RequestMapping注解

RequestMapping注解 作用 用于建立请求URL和处理请求方法之间的对应关系。 属性 value&#xff1a;指定请求的实际地址&#xff0c;可以是一个字符串或者一个字符串列表。 value可以不写&#xff0c;直接在括号中写&#xff0c;默认就是value值 RequestMapping(value“/hel…

PXE——高效批量网络装机

目录 部署PXE远程安装服务 1.PXE概述 2.实现过程 3.实验操作 3.1安装dhcp、vsftpd、tftp-server.x86_64、syslinux服务 3.2修改配置文件——DHCP 3.3修改配置文件——TFTP 3.4kickstart——无人值守安装 3.4.1选择程序 3.4.2修改基础配置 3.4.3修改安装方法 3.4.4…

【开源】基于JAVA语言的快乐贩卖馆管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 搞笑视频模块2.3 视频收藏模块2.4 视频评分模块2.5 视频交易模块2.6 视频好友模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 搞笑视频表3.2.2 视频收藏表3.2.3 视频评分表3.2.4 视频交易表 四、系…

【Git相关问题】修改代码提交push时的用户名字

最简方法如下&#xff1a; 直接修改Git的用户配置文件 .gitconfig&#xff0c;这个配置文件的路径一般是 C:\Users\本机用户名\.gitconfig 用记事本或编辑器打开&#xff0c;在[user]下即可修改用户名name或邮箱email 参考&#xff1a; 使用Git进行版本控制&#xff0c;不同…

POKT Network 开启周期性通缩,该计划将持续至 2025 年

POKT Network&#xff08;也被称为 Pocket Network&#xff09;在通证经济模型上完成了重大的改进&#xff0c;不仅将通货膨胀率降至 5% 以下&#xff0c;并使 POKT 通证在 2025 年走向通缩的轨迹上&#xff0c;预计到2024 年年底通货膨胀率将降至 2% 以下。POKT Network 的 “…

SpringBoot 2.x 正式停更了。Java 8 由 Solon 接收!

最近有好多个新闻说&#xff1a;SpringBoot 2.x 正式停更了&#xff0c;Java 8 怎么办&#xff1f;当然用 Solon 喽&#xff01; Solon&#xff0c;同时支持 jdk8, jdk11, jdk17, jdk21。也支持 graalvm native image。既支持 java8&#xff0c;也支持 java21 的&#xff1a; …

如何录制屏幕视频?让视频制作更简单!

随着数字化时代的来临&#xff0c;录制屏幕视频成为一种常见的传播和教学方式。无论是制作演示文稿、教学视频&#xff0c;还是记录游戏操作&#xff0c;屏幕录制为用户提供了强大而灵活的工具。可是您知道如何录制屏幕视频吗&#xff1f;本文将深入介绍两种常见的屏幕录制方法…

【Linux】Linux权限掩码umask

起始权限 我们在创建文件或目录的时候&#xff0c;通常都会有起始的权限&#xff0c;比如目录在创建的时候就有x权限&#xff0c;而且所有同类型文件的起始权限都是相同的 umask 功能&#xff1a; 查看或修改文件掩码 新建文件夹默认权限0666 新建目录默认权限0777 但实际…

LeetCode 2171.拿出最少数目的魔法豆:排序 + 枚举

【LetMeFly】2171.拿出最少数目的魔法豆&#xff1a;排序 枚举 力扣题目链接&#xff1a;https://leetcode.cn/problems/removing-minimum-number-of-magic-beans/ 给你一个 正 整数数组 beans &#xff0c;其中每个整数表示一个袋子里装的魔法豆的数目。 请你从每个袋子中…

Spring Security 6.x 系列【69】扩展篇之认证技术

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列Spring Security 版本 6.1.0 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo 文章目录 1. 信息安全技术2. 认证技术2.1 概述2.2 认证依据2.3 认证原理2.4 认证类型…

npm超详细安装(包括配置环境变量)!!!npm安装教程(node.js安装教程)

安装node.js:(建议选择相对低一点的版本&#xff0c;相对稳定)​下载完成直接点击next即可(安装过程中会直接添加path的系统变量&#xff0c;变量值是自己的安装路径&#xff0c;可自行选择&#xff0c;比如&#xff1a;D:\software\)​安装完成:winR打开电脑控制台&#xff0c…