[保研/考研机试] 猫狗收容所 C++实现

题目描述:

输入:

第一个是n,它代表操作序列的次数。接下来是n行,每行有两个值m和t,分别代表题目中操作的两个元素。

输出:

按顺序输出收养动物的序列,编号之间以空格间隔。

源代码:

#include<iostream>
#include<queue>
#include<vector>
using namespace std;//例题5.3 猫狗收容所
int main()
{int n, m, t, first=0;cin >> n;//定义两个队列,分别存储mao和狗进入收养所的顺序和编号,第一个进入的除外queue<int> cat;queue<int> dog;//按顺序保存出收养所的动物编号vector<int> nums;for (int i = 0; i < n; i++) { //循环cin >> m >> t;//保存第一个进入收容所的动物的编号。因为这里只需要输出出收养所的动物编号的顺序,如果把第一个进入收养所的也如队列的话,//后续输出第一个进入收养所的动物编号比较麻烦,直接通单独的一个变量保存更方便if (first == 0 && m==1) { first = t;continue;}if (m == 1) { // 有动物进入收养所if (t > 0) { //进入收养所的是狗dog.push(t);}if (t < 0) { //进入收养所的是猫cat.push(t);}}if (m == 2) { // 有人收养动物if (t == 0 && first != 0) { //收养最早进入的nums.push_back(first);//cout << first << " ";}if (t == 1 && !dog.empty()) { //收养狗//cout << dog.front() << " ";nums.push_back(dog.front());dog.pop();}if (t == -1 && !cat.empty()) { //收养猫//cout << cat.front() << " ";nums.push_back(cat.front());cat.pop();}}}//按顺序输出出收养所的动物编号for (int i = 0; i < nums.size()-1; i++) {cout << nums[i] << " ";}cout << nums[nums.size() - 1] << endl;return 0;
}

运行结果:

 

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

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

相关文章

用i18n 实现vue2+element UI的国际化多语言切换详细步骤及代码

一、i18n的安装 这个地方要注意自己的vue版本和i1n8的匹配程度&#xff0c;如果是vue2点几&#xff0c;记得安装i18n的8版本&#xff0c;不然会自动安装的最新版本&#xff0c;后面会报错哦&#xff0c;查询了下资料&#xff0c;好像最新版本是适配的vue3。 npm install vue-…

Attacks in NLP

一、 Introduction NLP对抗攻击是人工智能对抗攻击的一个重要的组成部分&#xff0c;但是最近几年才逐渐开始兴起&#xff0c;究其原因在于NLP对抗攻击与传统computer vision或者audio对抗攻击有很大的不同&#xff0c;主要在于值空间的连续性&#xff08;CV、audio&#xff0…

04-6_Qt 5.9 C++开发指南_QListWidget和QToolButton

文章目录 1. 实例简介2. 源码2.1 混合式界面设计2.2 mainwindow.h2.3 mainwindow.cpp 1. 实例简介 Qt 中用于项 (Item)处理的组件有两类&#xff0c;一类是 Item Views&#xff0c;包括 QListView、QTreeView、QTableView、QColumnView 等;另一类是 Item Widgets&#xff0c;包…

nginx的优化和防盗链

nginx的优化和防盗链 重点是优化 一&#xff1a;隐藏版本号 到http模块当中&#xff0c;添加server_tokens off 到源码包里面&#xff08;cd /src/core&#xff09; nginx.h的文件打开 NGINX_VER上下两行&#xff0c;修改完毕&#xff0c;然后编译安装 二&#xff1a;ngi…

C# 完成串口通信RS485

C# 完成串口通信RS485|RS232上下位机交互 第零步&#xff1a; 我用的是电脑usb 转串口的所以首先是驱动程序下载&#xff0c;我们用的是CH341 下载地址&#xff1a;https://www.wch.cn/downloads/CH341SER_EXE.html 第一步&#xff1a;连接机器 RS485 上面有三个端子&#xf…

深度学习与计算机相结合:直播实时美颜SDK的创新之路

时下&#xff0c;实时美颜技术就成为了直播主们的得力工具&#xff0c;它可以在直播过程中即时处理视频画面。而支持实时美颜功能的SDK更是推动了这项技术的发展&#xff0c;让直播主和普通用户都能轻松使用美颜功能。 一、美颜技术的演进 早期的美颜技术主要依赖于简单的图…

eclipse Java Editor Templates

​ Window - Preferences - Java - Editor - Templates ​ date ${currentDate:date(yyyy.MM.dd)}

Java版工程行业管理系统源码-专业的工程管理软件-em提供一站式服务

​ Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目…

塔矢行洋对战藤原佐为,谁才是最接近神之一手的人

大家好, 我是嘉宾, 今天我们来盘点一下古今第一高手对局 &#xff0c;塔矢行洋对战藤原佐为&#xff0c;谁才是最接近神之一手的人&#xff0c; 在所有设定都点击好之后, 塔矢行洋下出了自己的第一步 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 佐…

【HDFS】BlockManager#checkRedundancy方法详解

BlockManager#checkRedundancy这个方法只有一处调用点, 就是FSNamesystem#finalizeINodeFileUnderConstruction方法。 TODO:补充FSNamesystem#finalizeINodeFileUnderConstruction方法的调用点。 checkRedundancy方法的参数的BlockCollection对象bc,解释一下,INodeFile类是…

SA8450 camera 源码分析

目录 代码路径&#xff1a;/apps/qnx_ap/AMSS/multimedia/camera_safe/qcd Initialize the IFE and CSI Phy devices 初始化IFE 初始化 IFE CSID VFE 的结构体 获取IFE CSID base addr 的vaddr VFEDriver_Init RegisterISTCallback HwMgr_CSIPHYOpen 代码路径&#xff1…

【每日一题】—— B. Maximum Rounding(Codeforces Round 891 (Div. 3))

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;每日一题 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日反刍 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓称…

VIM 编辑器: Bram Moolenaar

VIM 用了很长时间&#xff0c; 个人的 VIM 配置文件差不多10年没有更新了。以前写程序的时候&#xff0c; 编辑都用这个。 linux kernel&#xff0c; boost规模的代码都不在话下。现在虽然代码写的少了&#xff0c;依然是我打开文件的首选。 现在用手机了&#xff0c;配个蓝牙键…

无涯教程-Perl - endnetent函数

描述 此功能告诉系统您不再希望使用getnetent从网络列表中读取条目。 语法 以下是此函数的简单语法- endnetent返回值 此函数不返回任何值。 例 以下是显示其基本用法的示例代码- #!/usr/bin/perluse Socket;while ( ($name, $aliases, $addrtype, $net) getnetent() )…

[RTKLIB]模糊度固定相关问题(一)

文章目录 一、改进的模糊度固定算法1. 简述模糊度固定算法思路2. 详解 manage_amb_LAMBDA()函数3. 我的思考和疑问 一、改进的模糊度固定算法 早些时候在阅读RTKLIB源码时&#xff0c;就对其模糊度固定算法感觉非常恐惧&#xff0c;首先是觉得整数最小二乘降相关是一个非常难的…

Android 9-- 源码角度: Home键的监听和拦截

在做应用层APP需求的过程中&#xff0c;HOME键的监听&#xff0c;Back键的监听&#xff0c;这都是很常见的问题&#xff0c;那你有试过&#xff0c;去拦截HOME键的事件吗&#xff0c;有去了解过如何处理吗&#xff0c;流程如何 首先大家应该先了解一种情况&#xff0c;就是Andr…

16-4_Qt 5.9 C++开发指南_Qt 应用程序的发布

文章目录 1. 应用程序发布方式2. Windows 平台上的应用程序发布 1. 应用程序发布方式 用 Qt 开发一个应用程序后&#xff0c;将应用程序提供给用户在其他计算机上使用就是应用程序的发布。应用程序发布一般会提供一个安装程序&#xff0c;将应用程序的可执行文件及需要的运行库…

Python 网络请求之requests

1.导入 requests 库 安装 requests 库 pip3 install "requests2.29.0"这里安装2,29.0版本&#xff0c;我在安装最新版本时&#xff0c;请求接口会报错&#xff1a; urllib3 v2.0 only supports OpenSSL 1.1.1, currently the ssl module is compiled with LibreSS…

Vue中使用Sortable:A和B拖拽交换位置之后,B和A又神奇得换回去了,但下面的数据确实已交换

参考&#xff1a;Vue中使用Sortable 1 问题 Vue中使用Sortable拖拽表头达到改变列的位置的效果&#xff0c; 想法&#xff1a;使用该组件进行拖拽列&#xff0c;但它不会切换原表头下的数据&#xff0c;因此&#xff1a;1、先拖拽&#xff0c;2、手动交换原先vue中的表头&am…

嵌入式面试4 Linux编程

23.设fp已定义,执行语句fpfopen(“file”,“w”);后,以下针对文本文件file操作叙述的选项错误的是:&#xff08;ACD&#xff09;【多选】 A 可以随意读和写 B 只能写不能读 C 可以在原有内容后追加写 D 写操作结束后可以从头开始读 权重&#xff1a;高 备注&#xff1a;还要理解…