7-9 包装机

news2024/9/22 4:23:57

一种自动包装机的结构如图 1 所示。首先机器中有 N 条轨道,放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中。当 0 号按钮被按下时,机械手将抓取筐顶部的一件物品,放到流水线上。图 2 显示了顺序按下按钮 3、2、3、0、1、2、0 后包装机的状态。

图1 自动包装机的结构

图 2 顺序按下按钮 3、2、3、0、1、2、0 后包装机的状态

一种特殊情况是,因为筐的容量是有限的,当筐已经满了,但仍然有某条轨道的按钮被按下时,系统应强制启动 0 号键,先从筐里抓出一件物品,再将对应轨道的物品推落。此外,如果轨道已经空了,再按对应的按钮不会发生任何事;同样的,如果筐是空的,按 0 号按钮也不会发生任何事。

现给定一系列按钮操作,请你依次列出流水线上的物品。

输入格式:

输入第一行给出 3 个正整数 N(≤100)、M(≤1000)和 Smax​(≤100),分别为轨道的条数(于是轨道从 1 到 N 编号)、每条轨道初始放置的物品数量、以及筐的最大容量。随后 N 行,每行给出 M 个英文大写字母,表示每条轨道的初始物品摆放。

最后一行给出一系列数字,顺序对应被按下的按钮编号,直到 −1 标志输入结束,这个数字不要处理。数字间以空格分隔。题目保证至少会取出一件物品放在流水线上。

输出格式:

在一行中顺序输出流水线上的物品,不得有任何空格。

输入样例:

3 4 4
GPLT
PATA
OMSA
3 2 3 0 1 2 0 2 2 0 -1

输出样例:

MATA

看着很长的一道题,其实很简单,用一下栈和队列就行

虽然很简单,但是没有全对。。。

代码:测试点5没过

#include<iostream>
#include<string.h>
#include<string>
#include<queue>
#include<stack>
using namespace std;

typedef struct List {
	queue<char> q;
};

List list[100];

int main()
{
	int n, m, max;
	char temp;
	cin >> n >> m >> max;

	stack<char> st;

	for (int i = 1; i <= n; i++) {
		for (int j = 0; j < m; j++) {
			cin >> temp;
			list[i].q.push(temp);
		}
	}

	int c;
	cin >> c;

	while (c != -1) {
		if (c > 0 && c <= n) {
			if (st.size() == max) {
				cout << st.top();
				st.pop();
			}
			if (!list[c].q.empty()) {
				char r = list[c].q.front();
				list[c].q.pop();

				st.push(r);
			}
		}
		else if (c == 0) {
			if (!st.empty()) {
				cout << st.top();
				st.pop();
			}
		}

		cin >> c;
	}
	


	return 0;
}

 

测试点5没过的原因是这里:

if (c > 0 && c <= n) {
			if (st.size() == max) {
				cout << st.top();
				st.pop();
			}
			if (!list[c].q.empty()) {
				char r = list[c].q.front();
				list[c].q.pop();

				st.push(r);
			}
		}

要改为这样:(我还把结构体改成了数组)

if (c > 0 && c <= n) {//如果要推动物品掉落
			if (st.size() < max && q[c].size()) {
				st.push(q[c].front());
				q[c].pop();
			}
			else if (st.size() >= max && q[c].size()) {
				cout << st.top();
				st.pop();

				st.push(q[c].front());
				q[c].pop();
			}
		}

最后的代码:

#include<iostream>
#include<queue>
#include<stack>
using namespace std;

int main()
{
	int n, m, max;
	char temp;
	cin >> n >> m >> max;

	queue<char> q[1000];
	stack<char> st;

	for (int i = 1; i <= n; i++) {
		for (int j = 0; j < m; j++) {
			cin >> temp;
			q[i].push(temp);
		}
	}

	int c;
	cin >> c;

	while (c != -1) {
		if (c > 0 && c <= n) {//如果要推动物品掉落
			if (st.size() < max && q[c].size()) {
				st.push(q[c].front());
				q[c].pop();
			}
			else if (st.size() >= max && q[c].size()) {
				cout << st.top();
				st.pop();

				st.push(q[c].front());
				q[c].pop();
			}
		}
		else if (c == 0) {
			if (!st.empty()) {
				cout << st.top();
				st.pop();
			}
		}

		cin >> c;
	}

	return 0;
}

 

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

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

相关文章

尚医通- Nacos服务注册 医院列表接口(二十一)

目录&#xff1a; &#xff08;1&#xff09;后台系统-医院管理-需求和Nacos启动 &#xff08;2&#xff09;医院列表-Nacos注册服务 &#xff08;3&#xff09;医院列表接口-初步实现 .&#xff08;1&#xff09;后台系统-医院管理-需求和Nacos启动 之前我们完成了数据相…

基于Java+Swing实现捕鱼达人游戏(含课程报告)

基于JavaSwing实现捕鱼达人游戏&#xff08;含课程报告&#xff09;一、系统介绍1、开发背景2、基本内容、实现方法及主要技术实现目标3实现目标二、功能展示三、其他系统一、系统介绍 1、开发背景 捕鱼达人这个项目是一个娱乐性的游戏开发&#xff0c;本次游戏的程序设计包含…

Spring6笔记4

十四、GoF之代理模式 14.1 对代理模式的理解 代理模式中有一个非常重要的特点&#xff1a;对于客户端程序来说&#xff0c;使用代理对象时就像在使用目标对象一样。【在程序中&#xff0c;目标需要被保护时】 业务场景&#xff1a;系统中有A、B、C三个模块&#xff0c;使用这…

移动Web【Flex布局模型构成 主轴对齐方式 侧轴对齐方式 伸缩比】

文章目录Flex布局Flex布局模型构成主轴对齐方式侧轴对齐方式伸缩比Flex布局 思考 多个盒子横向排列使用什么属性&#xff1f; 浮动 设置盒子间的间距使用什么属性&#xff1f; margin 需要注意什么问题&#xff1f; 浮动的盒子脱标 Flex布局/弹性布局&#xff1a; 是一种浏览…

06-07-SpringAop

介绍下AspectJ和AOP和关系 AspectJ是java编程语言的无缝的面向方面的扩展&#xff0c;可以在java代码的字节码中植入切面代码。 AspectJ 是静态代理的增强&#xff0c;所谓的静态代理就是 AOP 框架会在编译阶段生成 AOP 代理类&#xff0c;因此也称为编译时增强。 AspectJ 是…

手把手代码实现五级流水线CPU——第一篇:初级顺序流水线

文章目录指令系统编码格式一、基础&#xff1a;顺序结构1.取值阶段&#xff1a;2.译码阶段3.执行阶段4.访存阶段5.写回阶段6.更新PC阶段详细硬件结构指令在各个阶段完成的操作C代码实现指令系统 编码格式 一、基础&#xff1a;顺序结构 1.取值阶段&#xff1a; 根据icode还可以…

【FPGA开发】Verilog 基础

写在前面&#xff1a;本章将对 Verilog 进行简要介绍&#xff0c;并对其基本特性进行讲解说明。之后&#xff0c;我们将按步骤演示如何使用 Vivado 创建简单项目。手动实践部分将根据我们提供的 .v 和 .tb 代码&#xff0c;跟着步骤跑出 Simulation 结果即可。 Ⅰ. Verilog 基础…

Odoo 16 企业版手册 - 库存管理之产品追溯

产品追溯 Odoo提供的产品可追溯性功能将有助于跟踪和跟踪产品的每个组件。在库存移动的每个阶段跟踪产品对于控制所有操作是必要的。为了确保有效监控库存的走势&#xff0c;批号和序列号发挥着重要作用。从制造过程到交付操作&#xff0c;产品可追溯性将保持适当的跟踪&#x…

Mixlab 的自我介绍

‍‍‍‍2022在探索元宇宙落地过程中&#xff0c;走过不少弯路&#xff0c;本着 “孵化” 的初心&#xff0c;我们将继续探索面向未来的社区模式。1 / Mixlab 无界社区社区即服务&#xff0c;以此作为基础&#xff0c;孵化各种形态的产品/服务。在2022的白皮书记录了我们做社区…

数据结构与算法—链表之单链表

文章目录链表单链表结构和特点创建添加修改删除2023年的第一篇文章在开发过程中&#xff0c;选择合适的数据结构是很重要的&#xff0c;可以快速处理数据的存储及使用问题。计划有时间慢慢系统的学习《数据结构与算法》&#xff0c;看看视频&#xff0c;练习实践&#xff0c;最…

国产FPGA应用--易灵思Programming Mode完全解析

本文介绍易灵思的几种配置模式&#xff0c;方便大家参考。 一、易灵思下载模式&#xff1a; 二、下载模式选择&#xff1a; 1、SPI Active mode 时序图如下&#xff1a; 2、SPI Passive Mode 时序图如下&#xff1a; SPI Active using JTAG Bridge 实际项目中&#xff0c;SPI…

锥度张力控制(收卷应用)

收卷、放卷应用系列文章可以参看下面的文章链接: 变频器简单张力控制(线缆收放卷应用)_RXXW_Dor的博客-CSDN博客_收放卷应用张力控制的开闭环算法,可以查看专栏的其它文章,链接地址如下:PLC张力控制(开环闭环算法分析)_RXXW_Dor的博客-CSDN博客。https://blog.csdn.ne…

excel筛选技巧:不用函数公式也能快速多对多查找

说到excel中的筛选&#xff0c;想必大家早已是了如指掌&#xff0c;不过增强版的筛选&#xff0c;你听说过吗&#xff1f;它可比普通的筛选厉害多了&#xff0c;不仅能实现excel中的一对多查找&#xff0c;就连复杂的多对多查找也不在话下&#xff01; 其实是使用公式还是用其…

原子性 以及悲观锁, 乐观锁

1. 前言 今天这篇文章要详细的说说&#xff0c;什么叫原子性&#xff0c;以及如果不是原子性的话&#xff0c;怎么能保证原子性。 2. 原子性 先说下并发编程的三大特性&#xff1a;可见性, 有序性, 原子性。 无论是在什么语言&#xff0c;原子性都是非常重要的&#xff0c;既然…

elasticsearch 的基本操作多维度分享

目录 一、索引操作 二、映射操作 三、文档操作 elasticsearch 的基本操作多维度分享此篇正式分享&#xff0c;具体包括索引、映射、文档的相关处理&#xff0c;模拟生成环境&#xff0c;通过DSL语句和java的高级REST形式全方位展示给大家&#xff1b; 一、索引操作 1、创建…

2023超好用的Mac清理优化工具CleanMyMacX

CleanMymac X Mac版本&#xff0c;以一种全面的方式扫描Mac系统以允许垃圾隐藏&#xff0c;您只需要轻松单击左鼠标按钮即可清洁数字G的垃圾&#xff0c;这是如此简单。立即提高您的MAC速度。为Apple System计算机建造可以帮助用户清理多种类型的垃圾和其他恶意束&#xff0c;提…

Sentinel 控制台安装与详解

Sentinel 控制台包含如下功能: 查看机器列表以及健康情况&#xff1a;收集 Sentinel 客户端发送的心跳包&#xff0c;用于判断机器是否在线。监控 (单机和集群聚合)&#xff1a;通过 Sentinel 客户端暴露的监控 API&#xff0c;定期拉取并且聚合应用监控信息&#xff0c;最终可…

AIGC + 任意应用情景组合,从技术层面给了大家体验不同领域的创作的机会

还在为学技术的时候面对一大堆教程苦恼&#xff1f;画画、剪辑、建模 ... 啥啥啥都想学 &#x1f92f;AIGC 来解决&#xff01;&#xff01;每个人都有机会当五分钟艺术家&#xff01;AIGC 究竟有多强大&#xff1f;简单用一个公式来概况 AIGC 的强大之处&#xff0c;就是 AIG…

Harbor 镜像仓库

目录 一、Harboar概述 1.1 什么是 Harbor 1.2 Harbor优势 1.3 Harbor构成 1.4 Harbor的误区 二、Harbor 安装&#xff08;http&#xff09; 2.1 两种方式 2.2 具体安装步骤 2.2.1 先安装Docker和Docker Compose 2.2.2 下载Harbor 2.2.3 harbor.yml 的hostname 2.2.…

梳理一下我在2022年读过的23本书

作者 | gongyouliu编辑 | gongyouliu2022年我一共看了23本书&#xff0c;比自己之前定的目标——每年看36本书——少了不少。今天特意花大半天时间写一篇文章来整理一下今年看的书&#xff0c;梳理一下自己的思路&#xff0c;也算是留下一份记录。这份书单也希望给大家作为参考…