【CSP试题回顾】201703-2-学生排队

CSP-201703-2-学生排队

解题思路

  1. 初始化队列: 初始时,学生按照学号从小到大顺序排队,即学号1的学生在最前面,学号n的学生在最后面。使用一个向量(vector)myQueue来模拟这个队列,初始填充为1, 2, …, n。

  2. 读取输入: 读取学生总数n和调整次数m。对于每一次调整,读取两个整数pq,其中p表示要调整的学生的学号,q表示移动的距离,正值代表向后移动,负值代表向前移动。

  3. 队伍操作: 对于每一次调整,遍历队列找到学号为p的学生。然后根据q的值进行操作:

    • 向后移动(q > 0): 在当前位置加上移动距离后的位置插入学号为p的学生,然后删除原来位置上的该学生。
    • 向前移动(q < 0): 在当前位置减去移动距离的位置插入学号为p的学生,然后删除原来位置上的该学生。

    在实现移动时,要特别注意数组下标与学生位置之间的关系,以及向量中元素的插入和删除操作。

完整代码

#include <iostream>
#include <vector>
using namespace std;int n, m, p, q;int main() {cin >> n >> m;// 初始化队列vector<int>myQueue(n);for (int i = 1; i <= myQueue.size(); i++){myQueue[i - 1] = i;}// 队伍操作for (int i = 0; i < m; i++){cin >> p >> q;for (int j = 0; j < myQueue.size(); j++){if (myQueue[j] == p)  // 找到要移动的同学{if (q > 0){myQueue.insert(myQueue.begin() + j + q + 1, p);myQueue.erase(myQueue.begin() + j);}else if (q < 0){myQueue.insert(myQueue.begin() + j + q, p);myQueue.erase(myQueue.begin() + j + 1);}break;}}}for (auto& it : myQueue){cout << it << " ";}return 0;
}

请添加图片描述

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

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

相关文章

Android Framework 通过脚本动态修改应用私有文件执行权限

你只活一次 要悦己 脚本配置 Android_source/device/sprd/***/test/test_chmod.rc service test_chmod /vendor/bin/test_chmod.shuser rootdisabledoneshoton property:sys.test_chmodtruestart test_chmodAndroid_source/device/sprd/***/test/test_chmod.sh #!/system/bin/…

第一套试卷大题

1.邻接矩阵和邻接表的写法&#xff1a; **介绍&#xff1a;**该图是一个无向图&#xff0c;所以邻接矩阵一定是对称的&#xff0c;而邻接表某节点的边数为无向图某节点的连接数 无向图的邻接矩阵&#xff1a; 无向图的邻接表&#xff08;不唯一&#xff09;&#xff1a; 根据无…

【CSP试题回顾】201703-1-分蛋糕

CSP-201703-1-分蛋糕 解题代码 #include <iostream> using namespace std;int n, k, sumCake, cake, friendNum;int main() {cin >> n >> k;for (int i 0; i < n; i){cin >> cake;sumCake cake;if (sumCake > k || i n - 1) {friendNum;sum…

2024/3/7打卡公共子序列---动态规划问题

题目&#xff1a; 给定两个长度分别为 N 和 M 的字符串 A 和 B&#xff0c;求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少。 输入格式 第一行包含两个整数 N 和 M。 第二行包含一个长度为 N 的字符串&#xff0c;表示字符串 A。 第三行包含一个长度为 M 的字符串&am…

HiWoo Box数据远程采集模块

在数字化浪潮中&#xff0c;数据远程采集模块成为了推动工业转型升级的关键力量。作为工业物联网边缘网关&#xff0c;HiWoo Box网关的数据远程采集模块以其卓越的性能和可靠性&#xff0c;正助力企业实现数字化转型和智能化升级。下面&#xff0c;我们将从以下几个方面来探讨H…

✅图片上传组件使用

简述 图片压缩、图片预览、图片多图上传、默认高清压缩 前情提示 暂仅支持:bmp, gif, jpg, jpeg, png格式,暂不支持svg、webp等格式【升级后支持】 一只哈基米~~ 截图 使用方式(主打一个代码可直接复制) 单张图:缩略图、头像、营业执照 <a-form-model-item label=…

Jellyfin影音站点搭建并结合内网穿透实现远程观看本地影视资源

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&…

OPCUA 学习笔记-程序模型

无论是边缘控制器&#xff0c;还是PLC 中&#xff0c;除了信息模型之外&#xff0c;还有应用程序&#xff0c;这些程序可能是IEC61131-3 编写的程序&#xff0c;也可能是其它程序开发的可执行程序。 尽管OPCUA 描述模型能力很强&#xff0c;但是它缺乏算法的描述方式。但是OPCU…

如何将虚拟机设置成固定IP

问题描述&#xff1a; 在VMware虚拟机上部署的项目ip地址和数据库ip地址发生变动&#xff0c;导致mysql,nginx,redis等无法访问&#xff0c;要改配置又特别麻烦&#xff0c;而且下次可能还会变动。 解决方法&#xff1a; 将虚拟机ip地址配置成固定ip 关闭虚拟机&#xff0c;找…

如何在Linux系统部署MeterSphere服务并配置固定公网访问地址

文章目录 推荐 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#…

Python基础二

一、变量 在编程中&#xff0c;变量是用来存储数据值的名称。在 Python 中&#xff0c;变量是动态类型的&#xff0c;这意味着你可以将任何类型的数据分配给一个变量&#xff0c;而不需要提前声明变量的类型。 1、全局变量 在函数外部定义的变量是全局变量&#xff0c;可以在程…

关于Vue3的一些操作

1. 设置浏览器自动打开 在package.json 中设置 dev: vite --open 2.给src文件夹配置别名 在vite.config.ts配置文件中添加以下内容 3. 如果2中有红色波浪线的问题 ***安装一个文件包***npm install types/node3. 在tsconfig.json配置文件中&#xff0c;找到配置项compi…