
题目
cqggcqggcqggcqgg
这个作者很懒,什么都没留下…
展开
-
7-5 关键活动 (30分)
7-5关键活动(30分)假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成的一项工程,各门课程可以看成是子任务。有些课程可以同时开设,比如英语和C程序设计,它们没有必须先修哪门的约束;有些课程则不可以同时开设,因为它们有先后的依赖关系,比如C程序设计和数据结构两门课,必须先学习前者。但是需要注意的是,对一组子..原创 2020-12-21 21:35:37 · 304 阅读 · 0 评论 -
7-1 修理牧场 (25分)
7-1修理牧场(25分)农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是Li的总和。但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯成12和8;第二次锯木头花费12,将长度为12的木头锯成7和5,总花费为32。如果第一次将木头锯成15和5,则第二..原创 2020-12-21 21:34:06 · 442 阅读 · 0 评论 -
7-1 根据后序和中序遍历输出先序遍历 (25分)
7-1根据后序和中序遍历输出先序遍历(25分)本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。输入格式:第一行给出正整数N(≤30),是树中结点的个数。随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。输出格式:在一行中输出Preorder:以及该树的先序遍历结果。数字间有1个空格,行末不得有多余空格。输入样例:72 3 1 5 7 6 41 2 3 4 5 6 7输出样例:...原创 2020-12-21 21:32:12 · 699 阅读 · 0 评论 -
7-2 字符串循环左移 (20分)
7-2字符串循环左移(20分)输入一个字符串和一个非负整数N,要求将字符串循环左移N次。输入格式:输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。输出格式:在一行中输出循环左移N次后的字符串。输入样例:Hello World!2输出样例:llo World!He代码如下:#include <iostream>using namespace std;int main(){ int n...原创 2020-12-21 21:30:16 · 536 阅读 · 0 评论 -
6-1 查找子串 (20分)
6-1查找子串(20分)本题要求实现一个字符串查找的简单函数。函数接口定义:char *search( char *s, char *t );函数search在字符串s中查找子串t,返回子串t在s中的首地址。若未找到,则返回NULL。裁判测试程序样例:#include <stdio.h>#define MAXS 30char *search(char *s, char *t);void ReadString( char s[] ); /* 裁判提供,细节不..原创 2020-12-19 22:28:33 · 1068 阅读 · 3 评论 -
7-2 堆栈操作合法性 (20分)
7-2堆栈操作合法性(20分)假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。输入格式:输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50)是堆栈的最大容量。随后N行,每行中给出一个仅由S和X构成的序列。序列保证不为空,且长度不超过100。输出格式:对每个序列,在一行中输出YES如果该序列..原创 2020-12-19 22:26:47 · 377 阅读 · 1 评论 -
7-3 符号配对 (20分)
7-3符号配对(20分)请编写程序检查C语言源程序中下列符号是否配对:/*与*/、(与)、[与]、{与}。输入格式:输入为一个C语言源程序。当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束。程序中需要检查配对的符号不超过100个。输出格式:首先,如果所有符号配对正确,则在第一行中输出YES,否则输出NO。然后在第二行中指出第一个不配对的符号:如果缺少左符号,则输出?-右符号;如果缺少右符号,则输出左符号-?。输入样例1:void test(){ int..原创 2020-12-19 22:24:45 · 994 阅读 · 1 评论 -
7-4 表达式转换 (25分)
7-4表达式转换(25分)算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。输入格式:输入在一行中给出不含空格的中缀表达式,可包含+、-、*、\以及左右括号(),表达式不超过20个字符。输出格式:在一行中输出转换后的后缀表达式,要求不同对象(运算数、运算符号)之间以空格分隔,但结尾不得有多余空格。输入样例:2+3*(7-4)+8/4输出样例:2 3 7..原创 2020-12-19 22:22:51 · 442 阅读 · 1 评论 -
7-7 列车调度 (25分)
7-7列车调度(25分)火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第一行给出一个整数N(2≤N≤105),下一行给出从1到N的整数序号的一个重排列...原创 2020-12-19 22:21:03 · 1189 阅读 · 1 评论 -
6-1 循环单链表区间删除 (15分)
6-1循环单链表区间删除(15分)本题要求实现带头结点的循环单链表的创建和单链表的区间删除。L是一个带头结点的循环单链表,函数ListCreate_CL用于创建一个循环单链表,函数ListDelete_CL用于删除取值大于min小于max的链表元素。函数接口定义: Status ListCreate_CL(LinkList &CL); void ListDelete_CL(LinkList &CL,ElemType min,ElemType max);裁..原创 2020-12-19 21:50:21 · 463 阅读 · 1 评论 -
7-2 两个有序链表序列的交集 (20分)
7-2两个有序链表序列的交集(20分)已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 2 5 -12 4 5 8 10 -1输出样例:2 5代码如下:#include &l...原创 2020-12-19 21:46:24 · 671 阅读 · 1 评论 -
7-1 两个有序链表序列的合并 (20分)
7-1两个有序链表序列的合并(20分)已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 3 5 -12 4 6 8 10 -1输出样例:1 2 3 4 5 6 8 10代码如..原创 2020-12-19 12:09:13 · 1481 阅读 · 1 评论 -
6-1 带头结点的单链表就地逆置 (10分)
6-1带头结点的单链表就地逆置(10分)本题要求编写函数实现带头结点的单链线性表的就地逆置操作函数。L是一个带头结点的单链表,函数ListReverse_L(LinkList &L)要求在不新开辟节点的前提下将单链表中的元素进行逆置,如原单链表元素依次为1,2,3,4,则逆置后为4,3,2,1。函数接口定义:void ListReverse_L(LinkList &L);其中L是一个带头结点的单链表。裁判测试程序样例://库函数头文件包含#include...原创 2020-12-19 12:07:25 · 814 阅读 · 1 评论 -
7-2 jmu-ds-顺序表区间元素删除 (15分)
7-2jmu-ds-顺序表区间元素删除(15分)若一个线性表L采用顺序存储结构存储,其中所有的元素为整数。设计一个算法,删除元素值在[x,y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1)。输入格式:三行数据,第一行是顺序表的元素个数,第二行是顺序表的元素,第三行是x和y。输出格式:删除元素值在[x,y]之间的所有元素后的顺序表。输入样例:105 1 9 10 67 12 8 33 6 23 10输出样例:1 67 12 33 2代码如下..原创 2020-12-16 21:38:07 · 729 阅读 · 0 评论 -
6-2 有序顺序表的插入 (10分)
6-2有序顺序表的插入(10分)本题要求实现递增顺序表的有序插入函数。L是一个递增的有序顺序表,函数Status ListInsert_SortedSq(SqList &L, ElemType e)用于向顺序表中按递增的顺序插入一个数据。 比如:原数据有:2 5,要插入一个元素3,那么插入后顺序表为2 3 5。 要考虑扩容的问题。函数接口定义:Status ListInsert_SortedSq(SqList &L, ElemType e);裁判测试程序样例://..原创 2020-12-16 21:36:55 · 612 阅读 · 0 评论 -
6-1 顺序表创建和就地逆置 (10分)
6-1顺序表创建和就地逆置(10分)本题要求实现顺序表的创建和就地逆置操作函数。L是一个顺序表,函数ListCreate_Sq(SqList &L)用于创建一个顺序表,函数ListReverse_Sq(SqList &L)是在不引入辅助数组的前提下将顺序表中的元素进行逆置,如原顺序表元素依次为1,2,3,4,则逆置后为4,3,2,1。函数接口定义:Status ListCreate_Sq(SqList &L);void ListReverse_Sq(SqList ..原创 2020-12-16 21:34:59 · 327 阅读 · 0 评论 -
6-1 爆内存函数实例 (6分)
6-1爆内存函数实例(6分)本题要求实现一个递归函数,用户传入非负整型参数n,用户依次输出1到n之间的整数。所谓递归函数就是指自己调用自己的函数。说明:(1)递归函数求解问题的基本思想是把一个大规模问题的求解归结为一个相对较小规模问题的求解,小规模归结为小小规模,以此类推,直至问题规模小至边界(边界问题可直接求解)。递归函数由两部分组成,一部分为递归边界,另一部分为递归关系式。以求阶乘函数为例,递归边界Factorial(1)=1; 递归公式: Factorial(n)=n*Fact..原创 2020-12-16 21:32:47 · 1061 阅读 · 1 评论 -
6-2 顺序表基本操作 (10分)
6-2顺序表基本操作(10分)本题要求实现顺序表元素的增、删、查找以及顺序表输出共4个基本操作函数。L是一个顺序表,函数Status ListInsert_Sq(SqList &L, int pos, ElemType e)是在顺序表的pos位置插入一个元素e(pos应该从1开始),函数Status ListDelete_Sq(SqList &L, int pos, ElemType &e)是删除顺序表的pos位置的元素并用引用型参数e带回(pos应该从1开始),函数int ..原创 2020-12-16 21:30:45 · 2028 阅读 · 0 评论 -
7-11 公路村村通 (30分)
现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路。输入样例:6 151 2 51 3 31 4 71 5 4原创 2020-12-11 09:55:35 · 442 阅读 · 0 评论 -
7-6 银行排队问题之单队列多窗口加VIP服务 (30分)
假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。有些银行会给VIP客户以各种优惠服务,例如专门开辟VIP窗口。为了最大限度地利用资源,VIP窗口的服务机制定义为:当队列中没有VIP客户时,该窗口为普通顾客服务;当该窗口空闲并且队列中有VIP客户在等待时,排在最前面的VIP客户享受该窗口的服务。同时,当轮到某VIP客户出列时,若VIP窗口非空,该客户可以选择空闲的普通窗口原创 2020-11-20 09:44:45 · 446 阅读 · 0 评论 -
7-5 银行排队问题之单队列多窗口服务 (25分)
假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间,并且统计每个窗口服务了多少名顾客。输入格式:输入第1行给出正整数N(≤1000),为顾客总人数;随后N行,每行给出一位顾客的到达时间T和事务处理时间P,并且假设输入数据已经按到达时间先后排好了顺序;最后一行给出正整数K(≤10),为开设的营业原创 2020-11-20 09:43:13 · 3295 阅读 · 2 评论 -
7-4 银行排队问题之单窗口“夹塞”版 (30分)
排队“夹塞”是引起大家强烈不满的行为,但是这种现象时常存在。在银行的单窗口排队问题中,假设银行只有1个窗口提供服务,所有顾客按到达时间排成一条长龙。当窗口空闲时,下一位顾客即去该窗口处理事务。此时如果已知第i位顾客与排在后面的第j位顾客是好朋友,并且愿意替朋友办理事务的话,那么第i位顾客的事务处理时间就是自己的事务加朋友的事务所耗时间的总和。在这种情况下,顾客的等待时间就可能被影响。假设所有人到达银行时,若没有空窗口,都会请求排在最前面的朋友帮忙(包括正在窗口接受服务的朋友);当有不止一位朋友请求某位顾客帮原创 2020-11-20 09:41:34 · 321 阅读 · 1 评论 -
7-3 银行业务队列简单模拟 (25分)
Nihao原创 2020-11-20 09:39:16 · 1245 阅读 · 0 评论 -
7-1 删除字符串中的子串 (20分)
7-1 删除字符串中的子串 (20分)输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。输入格式:输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。输出格式:在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。输入样例:Tomcat is a male ccatatcat输出样例:Tom is a male#include <stdio.h>#include <string.原创 2020-09-27 14:04:32 · 4611 阅读 · 3 评论 -
7-1 数组循环左移 (25分) 满分25分代码 思路简单 清晰明了
本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a0a1⋯an−1)变换为(am⋯an−1a0a1⋯am−1)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:输入第1行给出正整数n(≤100)和整数m(≥0);第2行给出n个整数,其间以空格分隔。输出格式:在一行中原创 2020-10-23 17:42:57 · 525 阅读 · 0 评论 -
PTA 7-8 修理牧场 (25分) 最优二叉树(优先队列实现)详解
农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是Li的总和。但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯成12和8;第二次锯木头花费12,将长度为12的木头锯成7和5,总花费为32。如果第一次将木头锯成15和5,则第二次锯木头花费15,总花费为35(大原创 2020-09-30 15:40:04 · 644 阅读 · 0 评论 -
7-2 字符串循环左移 (20分)
7-2 字符串循环左移 (20分)输入一个字符串和一个非负整数N,要求将字符串循环左移N次。输入格式:输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。输出格式:在一行中输出循环左移N次后的字符串。输入样例:Hello World!2输出样例:llo World!He#include <stdio.h>#include <string.h>int main(){ char s[200]; int原创 2020-09-27 14:06:56 · 3027 阅读 · 0 评论