蓝桥杯day6队列-3.3

news2024/11/18 14:16:04

目录

1.约瑟夫环

1.注意!q.push(q.front());

2.机器翻译

3.小桥的神秘礼盒

4.餐厅排队



1.约瑟夫环

今天学习了队列的STL写法,来试试这个题。

#include<bits/stdc++.h>
using namespace std;

int main() {

	int n,m;
	cin>>n>>m;
	queue<int> q;
	for(int i=1; i<=n; i++) {
		q.push(i); //通过一个循环将数字 1 到 n 依次入队到队列 q 中
	}
	while(!q.empty()) {
		for(int i=1; i<m; i++) { //重复m-1次
			q.push(q.front()); //将队列的第一个元素移动到队列的末尾,此时队首元素还在,相当于只是将和队首元素相同的一个元素加入了队尾
			q.pop(); //将队列首元素出队
		}
		cout<<q.front()<<" "; //到了第m个,即要出列的元素 //输出队列前面的元素(即当前被淘汰的人)
		q.pop(); //将其从队列中移除
	}

	cout<<endl;
	return 0;
}

1.注意!q.push(q.front());

//将队列的第一个元素移动到队列的末尾,此时队首元素还在,相当于只是将和队首元素相同的一个元素加入了队尾


2.机器翻译

0机器翻译 - 蓝桥云课 (lanqiao.cn)

#include <bits/stdc++.h>
using namespace std;
bool hashtable[1003]; //全局变量,自动初始化为0。 0代表不在内存中
int main() {
	queue<int> q; //定义队列q
	int ans=0; //函数内部的变量,需要手动初始化为0。ans代表最终结果,即要去外存找多少次
	int m,n; //m代表内存容量,n代表文章的长度
	cin>>m>>n;
	for(int i=0; i<n; i++) {
		int x;
		cin>>x;
		if(hashtable[x]==false) { //如果x不在内存中
			
			if(q.size()<m) { //如果队列的元素的个数<m,说明还能放下至少一个
				q.push(x); //直接吧x放进去(插入队尾)
			} else {
				hashtable[q.front()]=false; //如果队列的第一个元素不在内存中
				q.pop(); //删除这个队首元素
				q.push(x); //把x插入到队尾
			}
			hashtable[x]=true; //把x标为在内存中,别忘了!
			ans++; //查询外存的次数+1
		}
	}
	cout<<ans<<endl; //输出结果
	return 0;
}

 用一个哈希表hashtable[]模拟内存,若hashtable[x]=true,表示x在内存中,否则不在内存中。用队列queue对输入的单词排队,当内存超过M时,删除队头的单词。

摘自罗老师的这篇博客:

<蓝桥杯软件赛>零基础备赛20周--第6周--数组和队列-CSDN博客


3.小桥的神秘礼盒

0小桥的神秘礼物盒 - 蓝桥云课 (lanqiao.cn)

主要问题是,如何处理1 x。

可以不一次性输入啊就是先判断第一个输入的是1,再去输入要加入队列的数x。

#include <bits/stdc++.h>
using namespace std;

int main() {
	int n,key,x;
	queue<int> q;
	cin>>n;
	for(int i=0; i<n; i++) {
		cin>>key;
		if(key==1) {
			cin>>x;
			q.push(x);
		}
		if(key==4) {
			cout<<q.size()<<endl;
		}
		if(q.empty()) {
			if(key==2) {
				cout<<"lan"<<endl;
			}
			if(key==3) {
				cout<<"qiao"<<endl;
			}
		} else {
			if(key==2) {
				q.pop();
			}
			if(key==3) {
				cout<<q.front()<<endl;
			}
		}
	}
	return 0;
}


4.餐厅排队

0餐厅排队 - 蓝桥云课 (lanqiao.cn)

#include <bits/stdc++.h>
using namespace std;
int main() {
	queue<int> qu;
	int q,m,x;
	cin>>q;
	for(int i=0; i<q; i++) {
		cin>>m;
		if(m==1) {
			cin>>x;
			qu.push(x);
		}
		if(!qu.empty()) {
			if(m==2) {
				qu.pop();
			}
			if(m==3) {
				cout<<qu.front()<<" "<<qu.back()<<endl;
			}
		}
	}
	return 0;
}

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

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

相关文章

使用docker安装运行rabbitmq---阿里云服务器

目录 0、阿里云没开端口的得要去安全组规则去添加&#xff1a; 1、下载RabbitMQ镜像&#xff1a; 2、查看镜像是否下载成功&#xff0c;得到docker镜像id&#xff1a; 3、运行RabbitMQ: 4、查看RabbbitMQ容器是否启动成功&#xff1a; 5、启动RabbitMQ中的插件管理 6、访…

postman环境变量全局变量设置

postman环境变量、全局变量设置 在公司中&#xff0c;一般会存在开发环境、测试环境、线上环境等&#xff0c;如果需要在不 同的环境下切换做接口测试&#xff0c;显然我们需要把所有接口的域名进行修改&#xff0c;如果接 口测试用例较多&#xff0c;那么修改会非常费力&…

three.js 射线Ray,三维空间中绘制线框

效果&#xff1a; 代码&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs"></div> <div>{{ res1 }}</div> <div>{{ res2 }}</div><…

vue3的开发小技巧

「总之岁月漫长&#xff0c;然而值得等待。」 目录 父组件调用子组件函数如何访问全局api 父组件调用子组件函数 ref, defineExpose //父组件 代码 <child ref"ch">this.$refs.ch.fn();//子组件 函数抛出 const fn () > { }; defineExpose({ fn });如何…

influxdb2.0插入数据字段类型出现冲突问题解决

一、问题出现 一个学校换热站自控系统&#xff0c;会定时从换热站获取测点数据&#xff0c;并插入到influxdb数据库中。influxdb插入数据时&#xff0c;报错提示&#xff1a; com.influxdb.exceptions.UnprocessableEntityException: failure writing points to database: par…

目标检测——摩托车头盔检测数据集

一、简介 首先&#xff0c;摩托车作为一种交通工具&#xff0c;具有高速、开放和稳定性差的特点&#xff0c;其事故发生率高&#xff0c;伤亡率排在机动车辆损伤的首位。因此&#xff0c;摩托车乘员头盔对于保护驾乘人员头部安全至关重要。在驾乘突发状况、人体受冲击时&#…

白话模电:1.绪论与半导体(考研面试常问问题)

一、什么是信号&#xff1f;什么是电信号&#xff1f; 信号反映消息的物理量&#xff0c;电信号是反应电压或电流变化的物理量。 二、什么是模拟信号&#xff1f;什么是数字信号&#xff1f; 模拟信号是时间和数值上均连续的信号&#xff0c;数字信号是时间和数值上均离散的信号…

Android使用WebView打开外部网页链接

发布Android应用&#xff0c;除了用原生开发外&#xff0c;更多是采用内嵌H5网页的方式来做&#xff0c;便于更新以及多平台使用。 一、第一种方式是直接通过WebView打开外部H5链接。 新建Android工程 直接创建一个工程&#xff0c;点击运行就可以了&#xff0c;打开是个空页…

13.西瓜书——半监督学习

1.概述 &#xff08;1&#xff09; 纯半监督学习 (Pure Semi-Supervised Learning) 纯半监督学习是一种典型的半监督学习方法&#xff0c;它的主要特点是同时利用有标签数据和无标签数据进行模型训练。目标是通过整合这两种类型的数据来提高模型的泛化性能。在这个过程中&#…

httprunner日志跟踪

1. 日志位置 1.1. 关键字&#xff1a;.log generate testcase log: D:\httprunner\demo\logs\082dd63e-56b9-40c1-9392-039dc0a03667.run.log 1.2. 控制台效果 2. 项目位置 3. 日志输出原理 3.1. 测试用例ID和Request ID 为排除故障&#xff0c;每个测试用例将生成唯一ID&…

物联网的商业模式洞察

大约在十年前&#xff08;2014年11月&#xff09;&#xff0c;全球知名管理思想家、哈佛商学院教授迈克尔波特与PTC前首席执行官吉姆赫普尔曼&#xff0c;在《哈佛商业评论》上联合撰写了一篇备受赞誉的文章&#xff0c;题为《智能互联产品如何改变竞争》。在这篇文章中&#x…

羊大师分析羊奶滋养,女性魅力绽放

羊大师分析羊奶滋养&#xff0c;女性魅力绽放 羊奶&#xff0c;自古以来便是滋养身心的天然佳品。它富含多种营养成分&#xff0c;如蛋白质、脂肪、矿物质和维生素等&#xff0c;能够为女性提供全面而均衡的营养支持&#xff0c;帮助她们保持健康与活力。 女性是社会的半边天&…

WordPress建站入门教程:如何选择和设置固定链接结构?

我们成功搭建好WordPress网站后&#xff0c;发布的文章对应的URL地址默认是使用“日期和名称型”&#xff0c;即是网站域名跟着的是年月日&#xff0c;最后是文章标题&#xff0c;如http://www.yigujin.com/2024/03/06/免费响应式WordPress博客主题JianYue/ 为了让我们的文章U…

Python算法题集_搜索二维矩阵

Python算法题集_搜索二维矩阵 题51&#xff1a;搜索二维矩阵1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【矩阵展开为列表二分法】2) 改进版一【行*列区间二分法】3) 改进版二【第三方模块】 4. 最优算法5. 相关资源 本文为Python算法题集之…

LeetCode 2482.行和列中一和零的差值

给你一个下标从 0 开始的 m x n 二进制矩阵 grid 。 我们按照如下过程&#xff0c;定义一个下标从 0 开始的 m x n 差值矩阵 diff &#xff1a; 令第 i 行一的数目为 onesRowi 。 令第 j 列一的数目为 onesColj 。 令第 i 行零的数目为 zerosRowi 。 令第 j 列零的数目为 zer…

AIOPS:Zabbix结合讯飞星火做自动化告警+邮件通知并基于人工智能提供解决方案

目前Zabbix官方已经提供Zabbix+ChatGPT的解决方案 ChatGPT一周年,你充分利用了吗?Zabbix+ChatGPT,轻松化解告警! 但是由于需要魔法等其他因素,比较不稳定,遂决定使用国内模型,这里我挑选的是讯飞星火,基于我之前的文档,在此基础上通过Zabbix的告警脚本实现调用AI模型…

二叉树入门

这篇博客通过手动创建的一个简单二叉树&#xff0c;实现二叉树遍历&#xff0c;返回节点&#xff0c;叶子个数&#xff0c;查找结点等相关操作。 1. 二叉树的概念 二叉树不为空时&#xff0c;由根节点&#xff0c;左/右子树组成&#xff0c;逻辑结构如下&#xff0c;当二叉树…

Java多线程——创建线程的几种方式

目录 引出创建线程有几种方式&#xff1f;方式1&#xff1a;继承Thread创建线程方式2&#xff1a;通过Runnable方式3&#xff1a;通过Callable创建线程方式4&#xff1a;通过线程池概述ThreadPoolExecutor API代码实现源码分析工作原理&#xff1a;线程池的阻塞队列选择线程池已…

leetcode 热题 100_轮转数组

题解一&#xff1a; 新数组存储&#xff1a;另外用一个数组存储移动后的结果&#xff0c;再复制回原数组。 class Solution {public void rotate(int[] nums, int k) {int[] result new int[nums.length];for (int i 0; i < nums.length; i) {result[(i k) % nums.lengt…

VS配置开发与远程调试笔记

先简单写一下&#xff0c;后续详细补充 场景&#xff1a;本地机器开发&#xff0c;虚拟机调试 准备工作&#xff1a; 由于要将生成的文件生成在虚拟机&#xff0c;避免反复拷贝&#xff0c;直接配置虚拟机共享文件夹进行写入&#xff0c;步骤如下&#xff1a; 虚拟机打开网…