C++编程试题:计算机学科丨编程夏令营上机考试题解

Posted 一起学编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++编程试题:计算机学科丨编程夏令营上机考试题解相关的知识,希望对你有一定的参考价值。

作为一个编程学习者,自己多多练习刷刷题总是没错的!今天我们再来看几道题:

 

A:最简真分数

全局题号3526 提交次数67 尝试人数39 通过人数38

总时间限制:

1000毫秒

内存限制:

65536kB

描述

给出n个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合。

输入

第一行是一个正整数n(n<=600)。

第二行是n个不同的整数,相邻两个整数之间用单个空格隔开。整数大于1且小于等于1000。

输出

一个整数,即最简真分数组合的个数。

样例输入

样例输出

C++实现

B:n-gram串频统计

全局题号7604 提交次数128 尝试人数34 通过人数31

总时间限制:

1000毫秒

内存限制:

65536kB

描述

在文本分析中常用到n-gram串频统计方法,即,统计相邻的n个单元(如单词、汉字、或者字符)在整个文本中出现的频率。假设有一个字符串,请以字符为单位,按n-gram方法统计每个长度为 n 的子串出现的频度,并输出最高频度以及频度最高的子串。所给的字符串只包含大小写字母,长度不多于500个字符,且 1 < n < 5。

如果有多个子串频度最高,则根据其在序列中第一次出现的次序依次输出,每行输出一个,如果最高频度不大于1,则输出NO。

输入

第一行为n;

第二行为字符串。

输出

输出最高频度以及频度最高的所有子串。若最高频度不大于1,只输出一行NO。

样例输入

样例输出

提示

样例中,所有的3-gram是:abc,bcd,cde,def,efa,fab,abc,bcd。最后面的cd不足以形成3-gram,则不考虑。这样,abc 和 bcd 都出现了2次,其余的只出现了1次。

C++实现

C:垂直直方图

全局题号1802 提交次数74 尝试人数37 通过人数37

总时间限制:

1000毫秒

内存限制:

65536kB

描述

输入4行全部由大写字母组成的文本,输出一个垂直直方图,给出每个字符出现的次数。注意:只用输出字符的出现次数,不用输出空白字符,数字或者标点符号的输出次数。

输入

输入包括4行由大写字母组成的文本,每行上字符的数目不超过80个。

输出

输出包括若干行。其中最后一行给出26个大写英文字母,这些字母之间用一个空格隔开。前面的几行包括空格和星号,每个字母出现几次,就在这个字母的上方输出一个星号。注意:输出的第一行不能是空行。

样例输入

样例输出

C++实现

D:比赛预测

全局题号325 提交次数27 尝试人数11 通过人数8

总时间限制:

1000毫秒

内存限制:

65536kB

描述

假设有 M 个人,包括你,在玩一种特殊的纸牌游戏。开始时,每个玩家收到 N 张牌。一张牌的点数是一个正整数,最多为 N*M。并且没有两张牌的点数相同。在一轮中,每个玩家选择一张牌与其他牌进行比较。拥有最大点数的玩家赢得这一轮,然后下一轮开始。N轮后,当每个玩家的牌都被选中时,赢得最多轮的玩家就是游戏的获胜者。

给定你在开始时收到的牌,编写一个程序来告诉你在整个游戏中至少可以赢的最大轮数。

输入

输入由几个测试用例组成。每个case的第一行包含两个整数m(2 <= m <= 20)和n(1<= n <= 50),分别代表玩家人数和每个玩家在游戏开始时收到的牌数, 分别。接下来是一行 n 个正整数,表示您在开始时收到的牌点数。然后是一个空行来分隔这些案例。

输入由带有两个零的行终止。

输出

对于每个测试用例,输出一行,其中包含测试用例编号,后跟您在游戏中至少会赢的回合数。

样例输入

样例输出

C++实现

G:网络

全局题号289 提交次数83 尝试人数28 通过人数17

总时间限制:

1000毫秒

内存限制:

65536kB

描述

您被指派设计广阔区域中某些点之间的网络连接。您将获得该区域中的一组点,以及可能连接成对点的电缆的一组可能路线。对于两点之间的每条可能的路线,您将获得连接该路线上的点所需的电缆长度。请注意,两个给定点之间可能存在许多可能的路线。假设给定的可能路线(直接或间接)连接该区域中的每两个点。

你的任务是为该区域设计网络,使每两个点之间有一个连接(直接或间接)(即所有点都相互连接,但不一定通过直接电缆),并且总长度为使用的电缆是最少的。

输入

输入文件由许多数据集组成。每个数据集定义一个所需的网络。集合的第一行包含两个整数:第一行定义给定点的数量 P,第二行定义点之间给定路线的数量 R。以下 R 行定义了点之间的给定路线,每行给出三个整数:前两个数字标识点,第三个给出路线的长度。数字用空格分隔。仅给出一个数字 P=0 的数据集表示输入的结束。数据集以空行分隔。

最大点数为 50。给定路线的最大长度为 100。可能路线的数量是无限的。节点用 1 到 P(含)之间的整数标识。两点 i 和 j 之间的路线可以用 ij 或 j i 给出。

输出

对于每个数据集,在单独的行上打印一个数字,该数字给出了用于整个设计网络的电缆的总长度。

样例输入

样例输出

C++实现

为了帮助大家,轻松,高效学习C语言/C++,给大家分享我收集的资源,从最零基础开始的,帮助大家在学习C语言的道路上披荆斩棘!

C++编程学习

微信公众号:C语言编程学习基地

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!大家也要把握住大学的时光,抓住成长的每一次机会哦~

以上是关于C++编程试题:计算机学科丨编程夏令营上机考试题解的主要内容,如果未能解决你的问题,请参考以下文章

C++编程试题:计算机学科丨编程夏令营上机考试题解

C++编程试题:计算机学科-夏令营上机考试题解

C++编程试题:计算机学科-夏令营上机考试题解

编程试题练习:2018计算机学科-夏令营上机考试题解

2017计算机学科夏令营上机考试-A判决素数个数

2017计算机学科夏令营上机考试-B编码字符串