全国信息学奥林匹克联赛(NOIP2019)复赛 普及组答案及解析.pdfVIP

全国信息学奥林匹克联赛(NOIP2019)复赛 普及组答案及解析.pdf

  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、数字游戏

【问题描述】

小K同学向小P同学发送了一个长度为8的01字符串来玩数字游戏,小P同学想

要知道字符串中究竟有多少个1。

注意:01字符串为每一个字符是0或者1的字符串,如“101”(不含双引号)为一

个长度为3的01字符串。

【输入格式】

输入文件名为numberin。

输入文件只有一行,一个长度为8的01字符串s。

【输出格式】

输出文件名为number.out。

输出文件只有一行,包含一个整数,即01字符串中字符1的个数。

【输入输出样例1】

【输入输出样例1说明】

该01字符串中有2个字符1。

【输入输出样例2】

【输入输出样例2说明】

该01字符串中有8个字符1。

【数据规模与约定】

对于20%的数据,保证输入的字符全部为0。

对于100%的数据,输入只可能包含字符0和字符1,字符串长度固定为8。

参考答案:对于输入的01字符串,我们需要统计其中字符1的个数。可以直接遍历

字符串,对每个字符进行判断,如果是字符1,则计数器加1。最后输出计数器的值

即可。

解析:【喵呜刷题小喵解析】:

根据题目描述,我们需要统计输入的01字符串中字符1的个数。这是一个直接的问

题,没有太多的复杂性。可以直接使用编程语言中字符串处理的方法来实现。在编

程时,我们可以遍历字符串中的每个字符,如果是字符1,则将计数器加1。最后输

出计数器的值即可。由于题目中给出了数据规模与约定,我们可以根据这个信息来

优化算法。对于20%的数据,输入的字符全部为0,我们可以直接输出0。对于100

%的数据,输入只可能包含字符0和字符1,字符串长度固定为8,我们可以直接使

用一个长度为8的字符数组来处理输入,然后统计其中字符1的个数。这种方法的时

间复杂度为O(1),空间复杂度也为O(1)。

2、公交换乘

【问题描述】

著名旅游城市B市为了鼓励大家采用公共交通方式出行,推出了一种地铁换乘公交

车的优惠方案:

1.在搭乘一次地铁后可以获得一张优惠票,有效期为45分钟,在有效期内可以

消耗这张优惠票,免费搭乘一次票价不超过地铁票价的公交车。在有效期内指

开始乘公交车的时间与开始乘地铁的时间之差小于等于45分钟,即:tbus-

tsubway≤45

2.搭乘地铁获得的优惠票可以累积,即可以连续搭乘若干次地铁后再连续使用优

惠票搭乘公交车。

3.搭乘公交车时,如果可以使用优惠票一定会使用优惠票;如果有多张优惠票满

足条件,则优先消耗获得最早的优惠票。

现在你得到了小轩最近的公共交通出行记录,你能帮他算算他的花费吗?

【输入格式】

输入文件名为transfer.in。

输入文件的第一行包含一个正整数n,代表乘车记录的数量。

接下来的n行,每行包含3个整数,相邻两数之间以一个空格分隔。第i行的

第1个整数代表第i条记录乘坐的交通工具,0代表地铁,1代表公交车;第2个

整数代表第i条记录乘车的票价pricei;第三个整数代表第i条记录开始乘车的时间ti

(距0时刻的分钟数)。

我们保证出行记录是按照开始乘车的时间顺序给出的,且不会有两次乘车记录出现

在同一分钟。

【输出格式】

输出文件名为transfer.out。

输出文件有一行,包含一个正整数,代表小轩出行的总花费

【输入输出样例1】

【输入输出样例1说明】

第一条记录,在第3分钟花费10元乘坐地铁。

第二条记录,在第46分钟乘坐公交车,可以使用第一条记录中乘坐地铁获得的优

惠票,因此没有花费。

第三条记录,在第50分种花费12元乘坐地铁。

第四条记录,在第96分钟乘坐公交车,由于距离第三条记录中乘坐地铁已超过45

分钟,所以优惠票已失效,花费3元乘坐公交车。

第五条记录,在第110分钟花费5元乘坐地铁。

第六条记录,在第135分钟乘坐公交车,由于此时手中只有第五条记录中乘坐地铁

获得的优惠票有效,而本次公交车的票价为6元,高于第五条记录中地铁的票价5元

,所以不能使用优惠票,花费6元乘坐公交车。

总共花费36元。

【输入输出样例2】

【输入输出样例2说明】

第一条记录,在第1分钟花费5元乘坐地铁。

第二条记录,在第16分钟花费20元乘坐地铁。

第三条记录,在第23分钟花费7元乘坐地铁。

第四条记录,在第31分钟乘坐公交车,此时只有第二条记录中乘坐的地铁票价高

于本次公交车票价,所以使用第二条记录中乘坐地铁获得的优惠票。

第五条记录,在第38分钟乘坐公交车,此时第一条和第三条记

文档评论(0)

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

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

1亿VIP精品文档

相关文档