L2-037 包装机


时间限制
400 ms
内存限制
64 MB


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


图1 自动包装机的结构


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

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

输入格式:
输入第一行给出 3 个正整数 N(N ≤ 100)、M(M ≤ 1000)和 S ​ m a x S_{​max} S​max​( S ​ m a x S_{​max} S​max​ ≤ 100),分别为轨道的条数(于是轨道从 1 到 N 编号)、每条轨道初始放置的物品数量、以及筐的最大容量。随后 N 行,每行给出 M 个英文大写字母,表示每条轨道的初始物品摆放。
最后一行给出一系列数字,顺序对应被按下的按钮编号,直到 −1 标志输入结束,这个数字不要处理。数字间以空格分隔。题目保证至少会取出一件物品放在流水线上。

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

输入样例:
3 4 4
GPLT
PATA
OMSA
3 2 3 0 1 2 0 2 2 0 -1

输出样例:
MATA


给定n行m个字母 以及最大容量为Smax的框

每次给定一个指令
-1 结束指令
0 夹出框中最上面的一个字母 放到流水线上
非零 去非零行推出一个字母 如果框中满了 先执行0的指令 再将给零行的字母推入框中

去判断最后流水线上有那些字母


emmmmmmm
栈的应用

按照指令执行

先去判断指令是啥

-1 退出 结束输入

0 从非空栈中 夹出一个字符

非零 如果栈中满了 就先执行指令0的操作 然后从非空轨道上推出一个字符到框中

只需要有一个数组去记录每行推送到第几个字母

然后就 if if if if if 判断就好了


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StreamTokenizer;
import java.util.LinkedList;public class Main
{public static void main(String[] args) throws IOException{int n = ini(), m = ini(), Smax = ini();char map[][] = new char[n + 10][m + 10];for (int i = 1; i <= n; i++)map[i] = ins().toCharArray();int step[] = new int[n + 10]; // 记录每条轨道上该取第几个字母LinkedList<Character> q = new LinkedList<Character>(); // 记录框里的字母StringBuilder res = new StringBuilder(); // 记录流水线上的字母while (true){int x = ini();if (x == -1)break;else if (x == 0 && q.size() != 0)res.append(q.poll());else if (x != 0){if (step[x] == m) // 轨道上已经没有任何东西了continue;if (q.size() == Smax) // 框里已经满了res.append(q.poll());q.push(map[x][step[x]++]);}}out.println(res);out.flush();out.close();}static StreamTokenizer sc = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));static PrintWriter out = new PrintWriter(System.out);static int ini() throws IOException{sc.nextToken();return (int) sc.nval;}static String ins() throws IOException{sc.nextToken();return sc.sval;}
}

LinkedList

StringBuilder


如果有说错的 或者 不懂的 尽管提 嘻嘻

一起进步!!!


闪现

L2-037 包装机 - java相关推荐

  1. 天体赛练习集 简要题解 - L2

    目录 001 - 紧急救援 002 - 链表去重 003 - 月饼 004 - 这是二叉搜索树吗? 005 - 集合相似度 006 - 树的遍历 007 - 家庭房产 008 - 最长对称子串 009 ...

  2. 高并发编程-通过volatile重新认识CPU缓存 和 Java内存模型(JMM)

    文章目录 概述 volatile定义 CPU缓存 相关CPU术语 CPU缓存一致性协议MESI 带有高速缓存的CPU执行计算的流程 CPU 多级的缓存结构 Java 内存模型 (JMM) 线程通信的两 ...

  3. 【java】理解和运用Java中的Lambda

    1.概述 转载:理解和运用Java中的Lambda 前提 回想一下,JDK8是2014年发布正式版的,到现在为(2020-02-08)止已经过去了5年多.JDK8引入的两个比较强大的新特性是Lambd ...

  4. java基础2.5(集合)

    java基础第二阶段之day5 一.集合分类 集合类体系结构图: 二.Collection集合 1. Collection介绍 Collection集合,它是单列集合,创建Colection集合的对象 ...

  5. Java7里try-with-resources分析--转

    原文地址:http://blog.csdn.net/hengyunabc/article/details/18459463 这个所谓的try-with-resources,是个语法糖.实际上就是自动调 ...

  6. Lambert(兰勃托)投影--我国天气图底图广泛采用的一种投影

    Lambert.java 001  /** 002  003     Lambert兰勃特投影 004  005        PACKAGE: cma.common.projection 006  ...

  7. 2021年CCCC天梯赛 【部分题题解】

    天梯赛有三个level,第一个level基本就是语法题,第二个level是基础算法和STL库的一些应用. 第三个level就是一些难的算法. L3的题都不是太会,有思路但是写不出来. 目录 L1 人与 ...

  8. java l1 l2缓存,Java 两级缓存框架

    概述介绍 J2Cache 是 OSChina 目前正在使用的两级缓存框架(要求至少 Java 8).第一级缓存使用内存(同时支持 Ehcache 2.x.Ehcache 3.x 和 Caffeine) ...

  9. C#、Java、Python,window如何接入L2行情数据接口?(附代码)

    level2数据市场是证券公司的高级市场功能,包括十档行情市场推送.交易队列.逐笔交易.委托总量等功能.投资者可以联系营业部或直接通过网上申请开通,在交易所开通需要一定的费用.(外面全市场推送数据速度 ...

最新文章

  1. dbms_stats.lock_table_stats对于没有统计信息的表分区同样有效
  2. ync 小技巧-14-为用户启用统一的联系人存储库-Lync-无联系人
  3. php 匹配多行,PHP-选择与相关表中的多行匹配的行
  4. C#面向对象(一):明确几个简单的概念作为开胃菜
  5. VTK:PolyData之ProcrustesAlignmentFilter
  6. JDBC(11)—数据库连接池
  7. SAP Spartacus autofocus Directive的失败的单元测试 - 2021年1月13日 1.1
  8. 【转】医学影像技术(中国普通高等学校本科专业)
  9. 浏览器中的事件循环机制
  10. 【Java】Servlet原理
  11. Oracle JRE 7 Update 51 (64 bit) or higher is required forPolybase failed解决办法
  12. 阮一峰ES6入门读书笔记(十一):Promise
  13. 中国智能配电系统行业市场供需与战略研究报告
  14. java 工作流开发框架比较
  15. 解决 fxp/composer-asset-plugin 包报错问题
  16. Android studio真机调试返回 Entry name ‘assets/ae/res.ck‘ collided
  17. wr703n刷openwrt离线下载及upnp共享播放
  18. php企业后台管理系统模板,企业版PHP后台管理模板【清爽型】修改版~
  19. Python中除法取整以及求余数(模)的方式
  20. MDK 5.25 J-link V9 烧写程序失败

热门文章

  1. 如何处理笔记本搜索不到wifi的问题
  2. android8.1APP更新时出现安装包解析异常的提示
  3. 比乔碧萝殿下的贴图还秀的技巧!!!
  4. 数字化转型 — 新能源汽车 — 生产制造流程 — 涂装车间
  5. Android 应用之二维码扫描登录
  6. 揭秘!2020二维码防伪核心技术
  7. C#NPoi,将多个表数据导出到同一个ECXCL
  8. Java学习day015(日期,格式化)
  9. 农商行统一数据分析平台的建设要点和价值
  10. 小程序积分营销工具| 拆解分析3种裂变营销玩法