- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
冲刺NOIP2010模拟试题与解析(十)
普及组复赛
题目名称 手机 数字积木 家族 书本整理 程序名称 mobile.pas/c/cpp brick.pas/c/cpp famdy.pas/c/cpp book.pas/c/cpp 输入文件 mobile. in brick. in family.in book.in 输出文件 mobile. out brick.out family.out book.out 时间限制 1秒 1秒 1秒 1秒
一、手机(mobile.pas/c/cpp)
【问题描述】
一般的手机的键盘是这样的:
1 ?2?abc ?3?def ?4?ghi ?5?jkl ??6?mno ?7?pqrs ?8?tuv ?9?wxyz * 0 ??# ?? 要按出英文字母就必须要按数字键多下。例如要按出x就得按9两下,第一下会出w,而第二下会把w变成x。0键按一下会出一个空格。
??你的任务是读取若干句只包含英文小写字母和空格的句子,求出要在手机上打出这个句子至少需要按多少下键盘。
【问题输入】
? 一行一个句子,只包含英文小写字母和空格,且不超过200个字符。
【问题输出】
一行一个整数,表示按键盘的总次数。
【样例输入】
??i?have?a?dream
【样例输出】
??23
【数据范围】
??如题目所示
??二、数字积木(brick.pas/c/cpp)
【问题描述】
?? 小明有一款新式积木,每个积木上都有一个数,一天小明突发奇想,要是把所有的积木排成一排,所形成的数目最大是多少呢?
?? 你的任务就是读入n个数字积木,求出所能形成的最大数。
【问题输入】
第一行是一个整数n (n≤1000),接下来n行每行是一个正整数。
【问题输出】
?? 所能形成的最大整数
【样例输入】
3
13
131
343
【样例输出】【数据范围】
30%的数据,n≤l0,每个数103。50%的数据,n≤l00。100%的数据,n≤1000,每个数10200。
三、家族(family.pas/c/cpp)
【问题描述】
在一个与世隔绝的岛屿上,有一个有趣的现象:同一个家族的人家总是相邻的(这里的相邻是指东南西北四个方向),不同的家族之间总会有河流或是山丘隔绝,但同一个家族的人不一定有相同姓氏。现在给你岛上的地图,求出岛上有多少个不同的家族。岛上的地图有n行,每行有若干列,每个格子中要么是“ ”,表示大海,要么是“*”,表示河流或山丘,要么是小写字母,表示一户人家的姓氏。
【问题输入】
第一行是个数字N,表示下面信息的行数。接下来是N行字符,每行由小写字母和*号组成,有些行的最前面也可能包含若干连续的空格,表示这些区域是大海,每一行最多不超过200个字符。
【问题输出】
一个数字,表示家族数。
【样例输入】
4
*zlw**pxh
l*zlwk*hx*
w*tyy**yyy
zzl
【样例输出】
3
【数据范围】
?10%的数据,n≤1。?30%的数据,n≤10。?100%的数据,n≤100每一行最多不超过200个字符。
四、书本整理(book.pas/c/cpp)
【问题描述】
???? 小明的书架上放了许多书,为了使书架变得整洁,小明决定整理书架,他将所有书按高度大小排列,这样排了之后虽然整齐了许多,但小明发现,书本的宽度不同,导致书架看上去还是有些凌乱。小明把这个凌乱值定义为相邻两本书的宽度差的绝对值的和。
???? 例如有4本书:
1×2
5×3
2×4
3×1
那么小明将其排列整齐后的顺序是:
l×2
2×4
3×1
5×3
凌乱值就是2+3+2=7。
???? 于是小明决定拿掉其中的k本书,使凌乱值最小,你能帮他求出这个最小值吗?
已知每本书的高度都不一样。
【问题输入】
????第一行两个数字n和k,代表书总共有n本,要求从中去掉k本。(1≤n≤100,1≤kn)
下面的n行,每行两个数字表示一本书的高度和宽度,它们均小于200。
【问题输出】
????一个整数,表示书架的最小凌乱值。
【样例输入】
41
1?2
2?4
3?1
5?3
【样例输出】
3
【数据范围】
30%的数据,n≤20。100%的数据,n≤l00,kn。
?
试题解析
一、手机(mobile.pas/c/cpp)
算法分析:
本题是简单的计数问题,只要注意:(1)7键和9键可表示4个字母;(2)不要忘了空格0,就行了。
参考程序:
二、数字积木(brick.pas/c/cpp)
算法分析:
本题每个数都比较大,所以用字符串操作。
朴素算法是求出所有排列,求出其中能拼成的最大值,这样能拿30分左右
文档评论(0)