【2022寒假精进训练-8】7-9 包装机
一种自动包装机的结构如图 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)和 S$_{max}$(≤100),分别为轨道的条数(于是轨道从 1 到 N 编号)、每条轨道初始放置的物品数量、以及筐的最大容量。随后 N 行,每行给出 M 个英文大写字母,表示每条轨道的初始物品摆放。
最 ...
【2022寒假精进训练-8】7-12 特立独行的幸福
对一个十进制数的各位数字做一次平方和,称作一次迭代。如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数。1 是一个幸福数。此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68,3 次迭代后得到 100,最后得到 1。则 19 就是幸福数。显然,在一个幸福数迭代到 1 的过程中经过的数字都是幸福数,它们的幸福是依附于初始数字的。例如 82、68、100 的幸福是依附于 19 的。而一个特立独行的幸福数,是在一个有限的区间内不依附于任何其它数字的;其独立性就是依附于它的的幸福数的个数。如果这个数还是个素数,则其独立性加倍。例如 19 在区间[1, 100] 内就是一个特立独行的幸福数,其独立性为 2×4=8。
另一方面,如果一个大于1的数字经过数次迭代后进入了死循环,那这个数就不幸福。例如 29 迭代得到 85、89、145、42、20、4、16、37、58、89、…… 可见 89 到 58 形成了死循环,所以 29 就不幸福。
本题就要求你编写程序,列出给定区间内的所有特立独行的幸福数和它的独立性。
输入格式:输入在第一行给出闭区间的两个端点:1<A< ...
【2022寒假精进训练-8】7-11 病毒溯源
病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株,而这些变异的病毒又可能被诱发突变产生第二代变异,如此继续不断变化。
现给定一些病毒之间的变异关系,要求你找出其中最长的一条变异链。
在此假设给出的变异都是由突变引起的,不考虑复杂的基因重组变异问题 —— 即每一种病毒都是由唯一的一种病毒突变而来,并且不存在循环变异的情况。
输入格式:输入在第一行中给出一个正整数 N(≤10^4^),即病毒种类的总数。于是我们将所有病毒从 0 到 N−1 进行编号。
随后 N 行,每行按以下格式描述一种病毒的变异情况:
1k 变异株1 …… 变异株k
其中 k 是该病毒产生的变异毒株的种类数,后面跟着每种变异株的编号。第 i 行对应编号为 i 的病毒(0≤i<N)。题目保证病毒源头有且仅有一个。
输出格式:首先输出从源头开始最长变异链的长度。
在第二行中输出从源头开始最长的一条变异链,编号间以 1 个空格分隔,行首尾不得有多余空格。如果最长链不唯一,则输出最小序列。
注:我们称序列 { a$_1$,⋯,a*$_n$ } 比序列 { *b$_1$,⋯,b$_n$ } “小”,如果存在 1≤k ...
【2022寒假精进训练-8】7-10 集合相似度
给定两个整数集合,它们的相似度定义为:N$_c$/N$_t$×100%。其中N$_c$是两个集合都有的不相等整数的个数,N*t是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相似度。
输入格式:输入第一行给出一个正整数N(≤50),是集合的个数。随后N行,每行对应一个集合。每个集合首先给出一个正整数M(≤10^4^),是集合中元素的个数;然后跟M个[0,10^9^]区间内的整数。
之后一行给出一个正整数K(≤2000),随后K行,每行对应一对需要计算相似度的集合的编号(集合从1到N编号)。数字间以空格分隔。
输出格式:对每一套方案,如果可行就输出YES,否则输出NO。
输入样例:12345678910111213141516171810 118 76 84 58 48 11 21 49 89 11 102 454 10 3 8 46 6 1 7 5 4 93 1 8 42 2 87 9 8 7 6 5 4 2
输出样例:1250.00%33.33%
思路用set数组存储集合。对一对集合,先遍历其中一个集合,用find函数求出两个集合都有的不相等整数的个数,再求 ...
【2022寒假精进训练-8】7-13 二叉搜索树的结构
二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉搜索树。(摘自百度百科)
给定一系列互不相等的整数,将它们顺次插入一棵初始为空的二叉搜索树,然后对结果树的结构进行描述。你需要能判断给定的描述是否正确。例如将{ 2 4 1 3 0 }插入后,得到一棵二叉搜索树,则陈述句如“2是树的根”、“1和4是兄弟结点”、“3和0在同一层上”(指自顶向下的深度相同)、“2是4的双亲结点”、“3是4的左孩子”都是正确的;而“4是2的左孩子”、“1和3是兄弟结点”都是不正确的。
输入格式:输入在第一行给出一个正整数N(≤100),随后一行给出N个互不相同的整数,数字间以空格分隔,要求将之顺次插入一棵初始为空的二叉搜索树。之后给出一个正整数M(≤100),随后M行,每行给出一句待判断的陈述句。陈述句有以下6种:
A is the root,即”A是树的根”;
A and B are siblings,即”A和B是兄弟结点”;
A is the par ...
【2022寒假精进训练】天梯赛经验分享
天梯赛经验分享诚信应考,千万不要作弊!!!千万不要作弊!!!千万不要作弊!!!
天梯赛是一人作弊,取消全校成绩,作弊即社死
知识相关基础L1-10题(100分)L1题目基本不涉及数据结构,最难的就是字符串处理题和数学模拟题(大数)
掌握STL容器和函数的使用就可以了(string、vector、set、multiset、map、unodered_map、stack、queue)
如果理解了指针和迭代器,灵活使用<algorithm>头文件的函数会便捷很多
L1经常出现想象不到的特殊情况,导致一两个测试点无法通过;有时也会出一些非常麻烦的字符串处理题
L1-064 估值一亿的AI核心代码 (20 分)
L1-046 整除光棍 (20 分)
进阶L2-4题(100分)L2肯定会涉及到数据结构和算法(动态规划从没考过),大多为模拟题和少部分的数据结构题
情景模拟题不会直接说明考察什么数据结构,需要自己看清问题本质(排序、树的DFS、图的遍历、图的最短路径、并查集等等)
如果是数据结构题,往往都比较难,一般是硬性的知识点(也就是没学过基本肯定不会的那种,例如:中缀式转后缀式、堆、 ...
【2022每日分享day28】插件Vimium分享
河北大学2022寒假萌新程序设计训练每日知识分享-day28
每日分享—— 插件Vimium分享Vimium —— 一个支持全键盘操作浏览器的辅助工具
Vimium是一款Chrome上的插件,是Vim和Chromium的结合,可以帮助用户完全脱离鼠标,通过使用一系列快捷键来操作浏览器。Vim是一个著名的功能强大、高度可定制的Linux等平台上的文本编辑器,它可以让你彻底脱离鼠标,通过一系列快捷键,来操作任何一件事情。而Vimium则继承了Vim 中的常用键位,让你在使用Chrome的过程中,无论是浏览网页、切换标签或是其它任何操作,全都可以只通过键盘完成。Vimium实际上可以理解成是一系列快捷键配置,你可以通过这些快捷键来完成对应的操作。虽然快捷键比较多,但常用的不多,而且使用几次后很容易上手。
官网地址:http://vimium.github.io/
可以在群文件下载压缩包,然后再浏览器中使用该扩展工具
【2022每日分享day27】单调栈&单调队列
河北大学2022寒假萌新程序设计训练每日知识分享-day27
每日分享——单调栈&单调队列1.核心思想利用栈和队列的单调性质,优化枚举区间内极值O(n)的时间复杂度到O(1)
2. 问题特征(1)区间内的极值(最大值,最小值)(2)找当前数左(右)边第一个比当前数大(小)的数
3. 分析流程step1: 先利用普通栈(队列)给出解法step2: 删除冗余的元素,得到具有单调性的栈和队列step3: 优化枚举元素的O(n)的时间复杂度到O(1)
4. 代码模板1234567891011121314151617181920212223242526272829303132单调栈:for(int i = 0, j = x; i < n; i++){ //栈不空&&冗余元素性质 while(!is_empty() && check(a[front()], a[i])) pop(); //找到目标元素 if(!is_empty()){ xx } else { ...
【2022寒假精进训练-7】7-15 喊山
喊山,是人双手围在嘴边成喇叭状,对着远方高山发出“喂—喂喂—喂喂喂……”的呼唤。呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的“讯号”,达到声讯传递交流的目的。原来它是彝族先民用来求援呼救的“讯号”,慢慢地人们在生活实践中发现了它的实用价值,便把它作为一种交流工具世代传袭使用。(图文摘自:http://news.xrxxw.com/newsshow-8018.html)
一个山头呼喊的声音可以被临近的山头同时听到。题目假设每个山头最多有两个能听到它的临近山头。给定任意一个发出原始信号的山头,本题请你找出这个信号最远能传达到的地方。
输入格式:输入第一行给出3个正整数n、m和k,其中n(≤10000)是总的山头数(于是假设每个山头从1到n编号)。接下来的m行,每行给出2个不超过n的正整数,数字间用空格分开,分别代表可以听到彼此的两个山头的编号。这里保证每一对山头只被输入一次,不会有重复的关系输入。最后一行给出k(≤10)个不超过n的正整数,数字间用空格分开,代表需要查询的山头的编号。
输出格式:依次对于输入中的每个被查询的山头,在一行中输出其发出的呼喊能够连锁传达 ...
【2022寒假精进训练-7】7-11 深入虎穴
著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报。已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门。每一扇门背后或者是一个房间,或者又有很多条路,同样是每条路通向一扇门…… 他的手里有一张表格,是其他间谍帮他收集到的情报,他们记下了每扇门的编号,以及这扇门背后的每一条通路所到达的门的编号。007 发现不存在两条路通向同一扇门。
内线告诉他,情报就藏在迷宫的最深处。但是这个迷宫太大了,他需要你的帮助 —— 请编程帮他找出距离入口最远的那扇门。
输入格式:输入首先在一行中给出正整数 N(<105),是门的数量。最后 N 行,第 i 行(1≤i≤N)按以下格式描述编号为 i 的那扇门背后能通向的门:
1K D[1] D[2] ... D[K]
其中 K 是通道的数量,其后是每扇门的编号。
输出格式:在一行中输出距离入口最远的那扇门的编号。题目保证这样的结果是唯一的。
输入样例:1234567891011121314133 2 3 42 5 61 71 81 902 11 101 13001 1200
输出样例:112
思路求树中距离根节 ...