2022年12月C语言五级答案及解析.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

一、编程题

1、1.漫漫回国路

2020年5月,国际航班机票难求。一位在美国华盛顿的中国留学生,因为一些原因

必须在本周内回到北京。现在已知各个机场之间的航班情况,求问他回不回得来(

不考虑转机次数和机票价格)。

时间限制:1000

内存限制:65536

输入

第一行为case个数n(n10)。每一个case,第一行为机场个数N,N≤10。

之后的N行,每一行包含N个整数。第i(1≤i≤N)行的第j(1≤j≤

N)个整数代表从第i个机场出发到第j个机场的能买到的航班的最低票价t(0t

10000)。如果不幸没有航班,那么用-1表示。第i行第i个整数为0。

起点华盛顿杜勒斯国际机场的编号为1,终点北京首都国际机场的编号为N。

输出

每一个case一行。

能够回国,输出字符串:YES。如果无法回国,输出字符串:NO

样例输入

```

2

3

0100-1

-10200

-1-10

4

015-1

301-1

240-1

4110

```

样例输出

```

YES

NO

```

参考答案:

解析:【喵呜刷题小喵解析】本题是一道典型的图论问题,可以使用Dijkstra算法

求解。首先,我们需要从输入中读取机场个数N和各个机场之间的航班情况,存储

在二维数组prices中。其中,prices[i][j]表示从第i个机场出发到第j个机场的航班最

低票价,如果没有航班,则prices[i][j]为-

1。然后,我们需要使用Dijkstra算法找到从华盛顿出发到北京的最短路径。具体实

现时,我们可以使用一个二维数组paths来存储从每个机场出发到每个机场的最短

路径长度,初始时所有路径长度都为-

1。然后,我们遍历所有的机场,对于每个机场,我们遍历所有的航班,如果存在

从当前机场出发到目标机场的航班,则更新paths数组。接下来,我们使用Dijkstra

算法找到从华盛顿出发到北京的最短路径。具体实现时,我们可以使用一个一维数

组dist来存储从华盛顿出发到每个机场的最短路径长度,初始时所有路径长度都为

无穷大。然后,我们遍历所有的机场,对于每个机场,我们找到当前未访问过的机

场中路径长度最短的机场,然后更新其邻居机场的最短路径长度。最后,我们判断

是否能够回国,如果能够回国,则输出字符串YES,否则输出字符串NO。具体

实现时,我们可以判断dist[N-

1]是否等于无穷大,如果不等于无穷大,则说明能够回国,否则无法回国。

2、2.通配符匹配

给定一个字符串s和一个字符模式p,请实现一个支持?和*的通配符匹配功能。

其中‘?’可以匹配任何单个字符,如‘a?c’可以成功匹配‘aac’,‘abc’等字符串,但不可

匹配‘ac’,‘aaac’等字符串。

‘*’

可以匹配任意长度字符串(包括空字符串),如‘a*c’可以成功匹配‘ac’,‘abdc’,‘abc’,‘a

aac’等字符串,但不可匹配‘acb’,‘cac’等字符串。

两个字符串完全匹配才算匹配成功。

时间限制:2000

内存限制:262144

输入

输入为一个数字n表示测试字符串与字符模式对数,换行。(n≤30)

后续2n行为每组匹配的s与p,每行字符串后换行。s非空,只包含从a-z

的小写字母。p非空,只包含从a-z的小写字母,以及字符?和*。

字符串s和p的长度均小于50

输出

每一组匹配串匹配成功输出‘yes’,否则输出‘no’。

样例输入

```

3

abc

abc

abc

a*c

abc

a??c

```

样例输出

```

yes

yes

no

```

参考答案:

解析:【喵呜刷题小喵解析】本题是一道经典的动态规划问题,可以使用动态规划

算法来解决。首先,我们定义一个二维数组dp,其中dp[i][j]表示字符串s的前i个字

符和字符串p的前j个字符是否匹配。然后,我们根据题目中给出的通配符匹配规则

,进行状态转移。对于字符串p的第j个字符,如果它是‘?’,则可以匹配字符串s的

第i个字符,此时dp[i][j]=dp[i-1][j-

1]。如果字符串p的第j个字符是‘*’,则可以匹配字符串s的第i个字符,也可以不匹

配,此时dp[i][j]=dp[i-1][j]ordp[i][j-

1]。最后,返回dp[m][n],其中m和n分别是字符串s和p的长度。在代码中,我们使

用了动

文档评论(0)

喵呜刷题 + 关注
实名认证
文档贡献者

来喵呜刷题,完成你的职业蜕变!

1亿VIP精品文档

相关文档