【2021暑期训练-3】9-7 彩虹瓶
彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里。
假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将顺序就编号为 1 到 N)。现在工厂里有每种颜色的小球各一箱,工人需要一箱一箱地将小球从工厂里搬到装填场地。如果搬来的这箱小球正好是可以装填的颜色,就直接拆箱装填;如果不是,就把箱子先码放在一个临时货架上,码放的方法就是一箱一箱堆上去。当一种颜色装填完以后,先看看货架顶端的一箱是不是下一个要装填的颜色,如果是就取下来装填,否则去工厂里再搬一箱过来。
如果工厂里发货的顺序比较好,工人就可以顺利地完成装填。例如要按顺序装填 7 种颜色,工厂按照 7、6、1、3、2、5、4 这个顺序发货,则工人先拿到 7、6 两种不能装填的颜色,将其按照 7 在下、6 在上的顺序堆在货架上;拿到 1 时可以直接装填;拿到 3 时又得临时码放在 6 号颜色箱上;拿到 2 时可以直接装填;随后从货架顶取下 3 进行装填;然后拿到 5,临时码放到 6 上面;最后取了 4 号颜色直接装填;剩下的工作就是顺序从货架上取下 5、6、7 依次装填。
但如 ...
【2021暑期训练-3】9-6 银行业务队列简单模拟
设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。
输入格式:输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空格分隔。
输出格式:按业务处理完成的顺序输出顾客的编号。数字间以空格分隔,但最后一个编号后不能有多余的空格。
输入样例:18 2 1 3 9 4 11 13 15
输出样例:11 3 2 9 11 4 13 15
思路利用两个queue A,B,并按照顾客奇偶序列号来存储,模拟排队时的先进后出。输出时注意先输出A队列中的顾客序号。
代码123456789101112131415161718192021222324252627282930313233343536#include <iostream>#include &l ...
【2021暑期训练-3】9-8 包装机
一种自动包装机的结构如图 1 所示。首先机器中有 N 条轨道,放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中。当 0 号按钮被按下时,机械手将抓取筐顶部的一件物品,放到流水线上。
一种特殊情况是,因为筐的容量是有限的,当筐已经满了,但仍然有某条轨道的按钮被按下时,系统应强制启动 0 号键,先从筐里抓出一件物品,再将对应轨道的物品推落。此外,如果轨道已经空了,再按对应的按钮不会发生任何事;同样的,如果筐是空的,按 0 号按钮也不会发生任何事。
现给定一系列按钮操作,请你依次列出流水线上的物品。
输入格式:输入第一行给出 3 个正整数 N(≤100)、M(≤1000)和 S max(≤100),分别为轨道的条数(于是轨道从 1 到 N 编号)、每条轨道初始放置的物品数量、以及筐的最大容量。随后 N 行,每行给出 M 个英文大写字母,表示每条轨道的初始物品摆放。
最后一行给出一系列数字,顺序对应被按下的按钮编号,直到 −1 标志输入结束,这个数字不要处理。数字间以空格分隔。题目保证至少会取出一件物品放在流水线上。
输出格式:在一行中顺序 ...
每日分享day16-LeetCode-技术成长平台
河北大学暑期程序设计训练每日知识分享-day16
每日分享——LeetCode-技术成长平台力扣(LeetCode) https://leetcode-cn.com/力扣是一个全球极客挚爱的技术成长平台,致力于帮助程序员们学习算法知识、训练算法题目,以提升自身技术能力、斩获 Dream Offer。力扣上的题目偏求职面试风格,题目难度分简单、中等、困难三个等级,力扣的题解版块汇集了各路算法大神的解题思路,优秀的题解不少,非常值得一看。
除此之外,力扣周赛 / 双周赛是全球同步的算法比赛,可以与全球的小伙伴一决高下。每次比赛结束后都会有一个全球 / 全国排名。在比赛结果页面还可以去学习一下大神们的解题思路,开拓算法思维。每场比赛共有四道题目,比赛时间为 1 小时 30 分钟。每题各种各样复杂度的算法都出现在比赛中。此外,对 Bug Maker 非常友好,在比赛时能告诉你哪个(非样例)点错了。
【2021暑期训练-3】9-9 链表去重
给定一个带整数键值的链表 L,你需要把其中绝对值重复的键值结点删掉。即对每个键值 K,只有第一个绝对值等于 K 的结点被保留。同时,所有被删除的结点须被保存在另一个链表上。例如给定 L 为 21→-15→-15→-7→15,你需要输出去重后的链表 21→-15→-7,还有被删除的链表 -15→15。
输入格式:输入在第一行给出 L 的第一个结点的地址和一个正整数 N(≤105,为结点总数)。一个结点的地址是非负的 5 位整数,空地址 NULL 用 -1 来表示。
随后 N 行,每行按以下格式描述一个结点:
1地址 键值 下一个结点
其中地址是该结点的地址,键值是绝对值不超过104的整数,下一个结点是下个结点的地址。
输出格式:首先输出去重后的链表,然后输出被删除的链表。每个结点占一行,按输入的格式输出。
输入样例:12345600100 599999 -7 8765423854 -15 0000087654 15 -100000 -15 9999900100 21 23854
输出样例:1234500100 21 2385423854 -15 9999999999 -7 -1000 ...
每日分享day15-字符串和数字转换函数总结
河北大学暑期程序设计训练每日知识分享-day15
每日分享——字符串和数字转换函数总结常见的输出格式转化
%% 打印出百分比符号,不转换。
%c 整数转成对应的 ASCII 字元。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。
%n sscanf(str,”%d%n”,&dig,&n)
%n表示一共转换了多少位的字符
c/cpp方法(数组转字符串)123itoa() 将整型值转换为字符串itoa() 将长整型值转换为字符串ultoa() 将无符号长整型值转换为字符串
当然cpp中也有常用函数atoi(),itoa(),to_string()用于他们的转换,例子如下:
12345678910#include<stdio.h>#include<stdlib.h>void main(void);void main(void){ int num = 100; char str[25]; itoa(num, ...
每日分享day14-Stack Overflow
河北大学暑期程序设计训练每日知识分享-day14
每日分享—— Stack OverflowStack Overflow http://stackoverflow.com/Stack Overflow是一个与程序相关的IT技术问答网站。用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的HTML。在问题页面,不会弹出任何广告,销售信息,JavaScript 窗口等。
Stack Overflow 参考 Reddit (一个社交新闻网站)等网站的用户激励机制,关注问题质量,网站允许注册用户提出或回答问题,还可对已有问题或答案加分、扣分或进行修改,条件是用户达到一定的“声望值”。“声望值”就是用户进行网站交互时能获取的分数 。
其他问答网站还有知乎,掘金等,社区网站也有GitHub,SegmentFault思否,在社区,每一位开发者都可以贡献和更新技术内容,共同参与社区建设,维护社区秩序。
每日分享day13-LibreOJ
河北大学暑期程序设计训练每日知识分享-day13
每日分享—— LibreOJLibreOJ https://loj.ac/洛谷致力于为OIers/ACMers提供清爽、快捷的编程体验。它不仅仅是一个在线测题系统,更拥有强大的社区、在线学习功能。同时,许多教程内容都是由五湖四海的ers提供的,保证了内容的广泛性。无论是初学者,还是久经沙场的神犇,均可从洛谷Online Judge获益,也可以帮助他人,共同进步。
可以在洛谷上搜索题单,有针对性的对某一方面进行训练或者积累做题经验。
洛谷网站为 https://www.luogu.com.cn/
每日分享day12-Git与GitHub
河北大学暑期程序设计训练每日知识分享-day12
每日分享——Git与GitHub Git是目前世界上最先进的分布式版本控制系统。
Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。 Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。
GitHub是一个基于Git的远程文件托管平台。
Git本身完全可以做到版本控制,但其所有内容以及版本记录只能保存在本机,如果想要将文件内容以及版本记录同时保存在远程,则需要结合GitHub来使用。
(git 可能大家目前不会使用到 , 但以后一定会接触的)
学习网站:
Git 教程 | 菜鸟教程
https://www.runoob.com/
https://www.runoob.com/git/git-tutorial.html
Git - 关于版本控制
https://git-scm.com/
https://www.git-scm.com/book/zh/v2/
菜鸟教程网站也是一个学习的好地方,涉及编程语言,开发,服务器端等多个方面。
作为一名合格的程序员, ...
每日分享day11-CodeSheep书签分享
河北大学暑期程序设计训练每日知识分享-day11
每日分享——CodeSheep书签分享来自CodeSheep编程羊的浏览器收藏夹
CodeSheep,热爱技术的开发人员,经常在微信、B站等平台分享学习经历、分析技术行情。B站的ID就是CodeSheep,他的学习分享视频覆盖许多技术领域,总会有你感兴趣的。
这个浏览器收藏夹包含了很多实用小工具和图片素材网站(思维导图制作、ASCII查询、CSS在线效果等,大家以后在做课程大作业的时候很可能会用到图片素材网站)
导入到自己的浏览器书签也很容易,这里以Edge为例,其他浏览器均可,操作简便。