PTA
文章平均质量分 58
Changxing898
星夜兼程
展开
-
6-9 统计个位数字 (15 分)
6-9 统计个位数字 (15 分)本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3。函数接口定义:int Count_Digit ( const int N, const int D );其中N和D都是用户传入的参数。N的值不超过int的范围;D是[0, 9]区间内的个位数。函数须返回N中D出现的次数。裁判测试程序样例:...原创 2019-10-27 22:04:29 · 1824 阅读 · 0 评论 -
6-8 简单阶乘计算 (10 分)
6-8 简单阶乘计算 (10 分)本题要求实现一个计算非负整数阶乘的简单函数。函数接口定义:int Factorial( const int N );其中N是用户传入的参数,其值不超过12。如果N是非负整数,则该函数必须返回N的阶乘,否则返回0。裁判测试程序样例:#include <stdio.h>int Factorial( const int N );int ...原创 2019-10-27 21:50:12 · 3263 阅读 · 0 评论 -
6-7 统计某类完全平方数 (20 分)
6-7 统计某类完全平方数 (20 分)本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。函数接口定义:int IsTheNumber ( const int N );其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。裁判测试程序样例:#include <stdio.h>#include...原创 2019-10-27 21:37:44 · 655 阅读 · 1 评论 -
4-2 顺序表操作集 (20分)
4-2 顺序表操作集 (20分)本题要求实现顺序表的操作集。原创 2016-08-25 05:30:40 · 5062 阅读 · 3 评论 -
5-49 打印学生选课清单 (25分)
5-49 打印学生选课清单 (25分)假设全校有最多40000名学生和最多2500门课程。现给出每门课的选课学生名单,要求输出每个前来查询的学生的选课清单。 输入格式:输入的第一行是两个正整数:N(≤40000),为前来查询课表的学生总数;K(≤2500),为总课程数。此后顺序给出课程1到K的选课学生名单。格式为:对每一门课,首先在一行中输出课程编号(简单起见,课程从1到K编号)和选课学生总数原创 2016-08-31 11:40:18 · 2684 阅读 · 0 评论 -
5-50 畅通工程之局部最小花费问题 (35分)
5-50 畅通工程之局部最小花费问题 (35分)某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全地区畅通需要的最低成本。 输入格原创 2016-08-31 11:47:43 · 2972 阅读 · 0 评论 -
5-51 两个有序链表序列的合并 (20分)
5-51 两个有序链表序列的合并 (20分)已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的并集新非降序链表S3。 输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1-不属于这个序列)。数字用空格间隔。 输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。 输入样例:1 3 5原创 2016-08-31 11:49:41 · 6801 阅读 · 0 评论 -
5-52 两个有序链表序列的交集 (20分)
5-52 两个有序链表序列的交集 (20分)已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。 输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。 输出格式:在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。 输入样例:1 2 5 -1原创 2016-08-31 11:51:26 · 4774 阅读 · 5 评论 -
5-53 两个有序序列的中位数 (25分)
5-53 两个有序序列的中位数 (25分)已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A0,A1,⋯,AN−1A_0,A_1,⋯,A_{N−1}的中位数指A(N−1)/2A_{(N-1)/2}的值,即第⌊(N+1)/2⌋⌊(N+1)/2⌋个数(A0A_0为第1个数)。 输入格式:输入分三行。第一行给出序列的公共长度N(0<N≤100000)(0<原创 2016-08-31 11:55:58 · 3194 阅读 · 0 评论 -
5-48 银行排队问题之单窗口“夹塞”版 (30分)
5-48 银行排队问题之单窗口“夹塞”版 (30分)排队“夹塞”是引起大家强烈不满的行为,但是这种现象时常存在。在银行的单窗口排队问题中,假设银行只有1个窗口提供服务,所有顾客按到达时间排成一条长龙。当窗口空闲时,下一位顾客即去该窗口处理事务。此时如果已知第iii位顾客与排在后面的第j位顾客是好朋友,并且愿意替朋友办理事务的话,那么第iii位顾客的事务处理时间就是自己的事务加朋友的事务所耗时间的原创 2016-08-31 11:38:43 · 2906 阅读 · 1 评论 -
5-47 打印选课学生名单 (25分)
5-47 打印选课学生名单 (25分)假设全校有最多40000名学生和最多2500门课程。现给出每个学生的选课清单,要求输出每门课的选课学生名单。 输入格式:输入的第一行是两个正整数:N(≤40000),为全校学生总数;K(≤2500),为总课程数。此后N行,每行包括一个学生姓名(3个大写英文字母+1位数字)、一个正整数C(≤20)代表该生所选的课程门数、随后是C个课程编号。简单起见,课程从1原创 2016-08-31 11:32:19 · 6685 阅读 · 3 评论 -
5-45 航空公司VIP客户查询 (25分)
5-45 航空公司VIP客户查询 (25分)不少航空公司都会提供优惠的会员服务,当某顾客飞行里程累积达到一定数量后,可以使用里程积分直接兑换奖励机票或奖励升舱等服务。现给定某航空公司全体会员的飞行记录,要求实现根据身份证号码快速查询会员里程积分的功能。 输入格式:输入首先给出两个正整数N(≤105≤10^5)和K(≤500)。其中K是最低里程,即为照顾乘坐短程航班的会员,航空公司还会将航程低于原创 2016-08-30 18:43:11 · 2635 阅读 · 1 评论 -
5-42 整型关键字的散列映射 (25分)
5-42 整型关键字的散列映射 (25分)给定一系列整型关键字和素数P,用除留余数法定义的散列函数将关键字映射到长度为P的散列表中。用线性探测法解决冲突。 输入格式:输入第一行首先给出两个正整数N(≤1000)和PPP(≥N的最小素数),分别为待插入的关键字总数、以及散列表的长度。第二行给出N个整型关键字。数字间以空格分隔。 输出格式:在一行内输出每个整型关键字在散列表中的位置。数字间以空格原创 2016-08-30 12:17:03 · 6500 阅读 · 0 评论 -
5-41 PAT排名汇总 (25分)
5-41 PAT排名汇总 (25分)计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准(网址http://www.patest.cn)。每次考试会在若干个不同的考点同时举行,每个考点用局域网,产生本考点的成绩。考试结束后,原创 2016-08-30 12:14:00 · 2295 阅读 · 0 评论 -
5-40 奥运排行榜 (25分)
5-40 奥运排行榜 (25分)每年奥运会各大媒体都会公布一个排行榜,但是细心的读者发现,不同国家的排行榜略有不同。比如中国金牌总数列第一的时候,中国媒体就公布“金牌榜”;而美国的奖牌总数第一,于是美国媒体就公布“奖牌榜”。如果人口少的国家公布一个“国民人均奖牌榜”,说不定非洲的国家会成为榜魁…… 现在就请你写一个程序,对每个前来咨询的国家按照对其最有利的方式计算它的排名。 输入格式:输入的第原创 2016-08-30 12:08:08 · 5536 阅读 · 0 评论 -
5-39 魔法优惠券 (25分)
5-39 魔法优惠券 (25分)在火星上有个魔法商店,提供魔法优惠券。每个优惠劵上印有一个整数面值K,表示若你在购买某商品时使用这张优惠劵,可以得到K倍该商品价值的回报!该商店还免费赠送一些有价值的商品,但是如果你在领取免费赠品的时候使用面值为正的优惠劵,则必须倒贴给商店K倍该商品价值的金额…… 但是不要紧,还有面值为负的优惠劵可以用!(真是神奇的火星)例如,给定一组优惠劵,面值分别为1、2、4原创 2016-08-30 11:48:15 · 2204 阅读 · 0 评论 -
5-37 模拟EXCEL排序 (25分)
5-37 模拟EXCEL排序 (25分)Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。 输入格式:输入的第一行包含两个正整数N(105 10^5) 和C,其中N是纪录的条数,C是指定排序的列号。之后有 N行,每行包含一条学生纪录。每条学生纪录由学号(6位数字,保证没有重复的学号)、姓名(不超过8位且不包含空格的字符串)、成绩([0, 100]内的整数)组成,相邻属性用原创 2016-08-30 11:39:06 · 4873 阅读 · 0 评论 -
5-36 社交网络图中结点的“重要性”计算 (30分)
5-36 社交网络图中结点的“重要性”计算 (30分)在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减弱。而结点根据其所处的位置不同,其在网络中体现的重要性也不尽相同。“紧密度中心性”是用来衡量一个结点到达其它结点的“快慢”的指标,即一个有较高中心性的结点比有较低中心性的结点能够原创 2016-08-30 11:35:08 · 3409 阅读 · 6 评论 -
5-17 汉诺塔的非递归实现 (25分)
5-17 汉诺塔的非递归实现 (25分)借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”),并保证每个移动符合汉诺塔问题的要求。 输入格式:输入为一个正整数N,即起始柱上的盘数。 输出格式:每个操作(移动)占一行,按柱1 -> 柱2的格式输出。 输入样例:3输出样例:a -> c原创 2016-08-29 08:53:09 · 3436 阅读 · 2 评论 -
5-22 堆栈模拟队列 (25分)
5-22 堆栈模拟队列 (25分)设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数:int IsFull(Stack S):判断堆栈S是否已满,返回1或0; int IsEmpty (Stack S ):判断堆栈S是否为空,返回1或0; void Push(Stack S, ElementType item ):原创 2016-08-29 11:00:18 · 2681 阅读 · 0 评论 -
1061 判断题 (15 分)
1061 判断题 (15 分)判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。输入格式:输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量。第二行给出 M 个不超过 5 的正整数,是每道题的满分值。第三行给出每道题对应的正确答案,0 代表“非”,1 代表“是”。随后 N 行,每行给出一个学生的解答。数字间均以空格分隔。输...原创 2019-10-03 19:32:30 · 3604 阅读 · 0 评论 -
1053 住房空置率 (20 分)
1053 住房空置率 (20 分)在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断。判断方法如下:在观察期内,若存在超过一半的日子用电量低于某给定的阈值 e,则该住房为“可能空置”;若观察期超过某给定阈值 D 天,且满足上一个条件,则该住房为“空置”。现给定某居民区的住户用电量数据,请你统计“可能空置”的比率和“空置”比率,即以上两种状态的住房占居民区住...原创 2019-10-03 19:18:13 · 256 阅读 · 0 评论 -
1060 爱丁顿数 (25 分)
1060 爱丁顿数 (25 分)英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E 英里的最大整数 E。据说爱丁顿自己的 E 等于87。现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N)。输入格式:输入第一行给出一个正整数 N (≤105),即连续骑车的天数;第二行给出 N 个非负整数,代表每天的骑车...原创 2019-10-03 19:09:10 · 375 阅读 · 0 评论 -
5-46 新浪微博热门话题 (30分)
5-46 新浪微博热门话题 (30分)新浪微博可以在发言中嵌入“话题”,即将发言中的话题文字写在一对“#”之间,就可以生成话题链接,点击链接可以看到有多少人在跟自己讨论相同或者相似的话题。新浪微博还会随时更新热门话题列表,并将最热门的话题放在醒目的位置推荐大家关注。本题目要求实现一个简化的热门话题推荐功能,从大量英文(因为中文分词处理比较麻烦)微博中解析出话题,找出被最多条微博提到的话原创 2016-08-31 11:17:03 · 6583 阅读 · 6 评论 -
5-44 基于词频的文件相似度 (30分)
5-44 基于词频的文件相似度 (30分)实现一种简单原始的文件相似度计算,即以两文件的公共词汇占总词汇的比例来定义相似度。为简化问题,这里不考虑中文(因为分词太难了),只考虑长度不小于3、且不超过10的英文单词,长度超过10的只考虑前10个字母。 输入格式:输入首先给出正整数N(≤100),为文件总数。随后按以下格式给出每个文件的内容:首先给出文件正文,最后在一行中只给出一个字符#原创 2016-08-30 12:33:39 · 4057 阅读 · 0 评论 -
5-27 家谱处理 (30分)
5-27 家谱处理 (30分)人类学研究对于家族很感兴趣,于是研究人员搜集了一些家族的家谱进行研究。实验中,使用计算机处理家谱。为了实现这个目的,研究人员将家谱转换为文本文件。下面为家谱文本文件的实例:John Robert Frank Andrew Nancy David家谱文本文件中,每一行包含一个人的名字。第一行中的名字是这个家族最早的祖先原创 2016-08-30 10:39:50 · 4461 阅读 · 3 评论 -
5-43 字符串关键字的散列映射 (25分)
5-43 字符串关键字的散列映射 (25分)给定一系列由大写英文字母组成的字符串关键字和素数P,用移位法定义的散列函数H(Key)将关键字Key中的最后3个字符映射为整数,每个字符占5位;再用除留余数法将整数映射到长度为P的散列表中。例如将字符串AZDEG插入长度为1009的散列表中,我们首先将26个大写英文字母顺序映射到整数0~25;再通过移位将其映射为3×(32)2+4×32+6=32原创 2016-08-30 12:23:21 · 4915 阅读 · 0 评论 -
5-35 城市间紧急救援 (25分)
5-35 城市间紧急救援 (25分)作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。 输入格式:输入第一行给出4个正整数N、M、S、D,其中N原创 2016-08-30 11:26:44 · 3626 阅读 · 1 评论 -
5-1 最大子列和问题
5-1 最大子列和问题 (20分)给定KKK个整数组成的序列{ N1N_1N1, N2N_2N2, …, NKN_KNK },“连续子列”被定义为{ NiN_iNi, Ni+1N_{i+1}Ni+1, …, NjN_jNj },其中 1≤i≤j≤K1 \le i \le j \le K1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。原创 2016-08-26 07:42:22 · 1006 阅读 · 4 评论 -
4-3 求链式表的表长
4-3 求链式表的表长 (10分)本题要求实现一个函数,求链式表的表长。原创 2016-08-25 05:37:18 · 1433 阅读 · 0 评论 -
5-38 寻找大富翁 (25分)
5-38 寻找大富翁 (25分)2015年胡润研究院的调查显示,截至2014年9月,个人资产在600万元以上高净值人群达290万人。假设给出N个人的个人资产值,请快速找出资产排前M位的大富翁。 输入格式:输入首先给出两个正整数N(10610^6)和MMM(≤10),其中N为总人数,M为需要找出的大富翁数;接下来一行给出N个人的个人资产值,以百万元为单位,为不超过长整型范围的整数。数字间以空格分原创 2016-08-30 11:43:35 · 4265 阅读 · 0 评论 -
4-5 链式表操作集 (20分)
4-5 链式表操作集 (20分)本题要求实现链式表的操作集。原创 2016-08-25 05:49:13 · 5628 阅读 · 6 评论 -
4-4 链式表的按序号查找 (10分)
4-4 链式表的按序号查找 (10分)本题要求实现一个函数,找到并返回链式表的第K个元素。原创 2016-08-25 05:43:37 · 5441 阅读 · 4 评论 -
4-1 单链表逆转 (20分)
4-1 单链表逆转 (20分)本题要求实现一个函数,将给定的单链表逆转。原创 2016-08-25 05:07:33 · 4046 阅读 · 6 评论 -
5-34 任务调度的合理性 (25分)
5-34 任务调度的合理性 (25分)假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成的一项工程,各门课程可以看成是子任务。有些课程可以同时开设,比如英语和C程序设计,它们没有必须先修哪门的约束;有些课程则不可原创 2016-08-30 11:21:56 · 1821 阅读 · 0 评论 -
5-33 地下迷宫探索 (30分)
5-33 地下迷宫探索 (30分)地道战是在抗日战争时期,在华北平原上抗日军民利用地道打击日本侵略者的作战方式。地道网是房连房、街连街、村连村的地下工事,如下图所示。 我们在回顾前辈们艰苦卓绝的战争生活的同时,真心钦佩他们的聪明才智。在现在和平发展的年代,对多数人来说,探索地下通道或许只是一种娱乐或者益智的游戏。本实验案例以探索地下通道迷宫作为内容。假设有一个地下通道迷宫,它的通道都是直的原创 2016-08-30 11:18:07 · 2195 阅读 · 0 评论 -
5-32 哥尼斯堡的“七桥问题” (25分)
5-32 哥尼斯堡的“七桥问题” (25分)哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示。 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(Leonhard Euler,1707—1783)最终解决了这个问题,并由此创立了拓扑学。这个问题如今可以描述为判断欧拉回路是否存在的问题。欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点原创 2016-08-30 11:12:43 · 3667 阅读 · 1 评论 -
5-10 公路村村通 (30分)
5-10 公路村村通 (30分)现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。 输入格式:输入数据包括城镇数目正整数N(≤1000和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号原创 2016-08-26 08:17:22 · 3358 阅读 · 1 评论 -
5-9 旅游规划 (25分)
5-9 旅游规划 (25分)有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。 输入格式:输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中NNN(2≤N≤5002≤N≤500)是城市的个数,顺便假设城市的编号为原创 2016-08-26 08:14:49 · 2153 阅读 · 0 评论 -
5-8 哈利·波特的考试 (25分)
5-8 哈利·波特的考试 (25分)哈利·波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如ahah可以将老鼠变成猫。另外,如果想把猫变成鱼,可以通过念一个直接魔咒lalala,也可以将猫变老鼠、老鼠变鱼的魔咒连起来念:hahahehe。原创 2016-08-26 08:11:52 · 2540 阅读 · 0 评论