- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
冲刺NOIP2011模拟试题
冲刺NOIP2011模拟试题
1.单词分类(word.c/cpp)
[问题描述]
Oliver为了学好英语决定苦背单词,但很快他发现要直接记住杂乱无章的单词非常困难,他决定对单词进行分类。
两个单词可以分为一类当且仅当组成这两个单词的各个字母的数量均相等。
例如“AABAC”,它和“CBAAA”就可以归为一类,而和“AAABB”就不是一类。
现在Oliver有N个单词,所有单词均由大写字母组成,每个单词的长度不超过100。你要告诉Oliver这些单词会被分成几类。
[输入格式]
输入文件的第一行为单词个数N,以下N行每行为一个单词。
[输出格式]
输出文件仅包含一个数,表示这N个单词分成的类数。
[样例输入]
3
AABAC
CBAAA
AAABB
[样例输出]
2
[数据范围]
对于70%的数据满足N≤100。
对于100%的数据满足N≤10000。
2.过河问题(river.c/cpp)
[问题描述]
有一个大晴天,Oliver与同学们一共N人出游,他们走到一条河的东岸边,想要过河到西岸。而东岸边有一条小船。
船太小了,一次只能乘坐两人。每个人都有一个渡河时间T,船划到对岸的时间等于船上渡河时间较长的人所用时间。
现在已知N个人的渡河时间T,Oliver想要你告诉他,他们最少要花费多少时间,才能使所有人都过河。
注意,只有船在东岸(西岸)的人才能坐上船划到对岸。
[输入格式]
输入文件第一行为人数N,以下有N行,每行一个数。
第i+1行的数为第i个人的渡河时间。
[输出格式]
输出文件仅包含一个数,表示所有人都渡过河的最少渡河时间。
[样例输入]
4
6
7
10
15
[样例输出]
42
[样例解释]
初始:东岸{1,2,3,4},西岸{}
第一次:东岸{3,4},西岸{1,2} 时间7
第二次:东岸{1,3,4},西岸{2} 时间6
第三次:东岸{1},西岸{2,3,4},时间15
第四次:东岸{1,2},西岸{3,4} 时间7
第五次:东岸{},西岸{1,2,3,4} 时间7
所以总时间为7+6+15+7+7=42,没有比这个更优的方案。
[数据范围]
对于40%的数据满足N≤8。
对于100%的数据满足N≤100000。
3.集合分组(device.c/cpp)
[问题描述]
现有K个整数集合,第i个集合有Sumi个元素。
集合中的数都为正数,且不大于N。
现有定义集合A与集合B相似;
1.B与A相似;
2.将A集合删去一个元素,或更改一个元素的值之后A集合与B集合相等。现要将K个集合分成至多M组(M>N),使得每一组内的集合互不相似。要求你给出一种合法的方案。如果无解请输出“impossible”。
[输入格式]
输入文件第一行有三个数N,K,M,意义如题目所述。
接下来有K行,每行第一数Sum表示序列长度。之后Sum个数为些集合的元素。
[输出格式]
输出文件有K个数,表示每个集合(按输入顺序)被分到的组的编号(1~M)。
[样例输入]
8 20 12
5 1 3 5 6 4
5 1 3 5 6 3
4 5 6 3 3
4 5 6 3 4
4 4 6 5 8
4 7 7 7 7
3 7 7 7
2 2 2
3 2 2 7
3 1 2 3
3 1 2 4
10 1 2 3 4 5 6 7 8 7 6
10 8 7 6 5 4 3 2 1 2 1
20 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 3 5 7
5 4 6 4 6 4
5 6 4 6 4 6
6 6 6 6 6 6 6
3 6 6 6
1 1
1 2
[样例输出]
2
1
9
1
6
2
4
5
3
7
8
5
4
8
7
9
1
1
2
3
[数据范围]
对于30%的数据满足N≤10,M≤2,K≤10。
对于100%的数据满足N≤100,M≤100,K≤50000,Sum≤100。
4.最短路(path.c/cpp)
[问题描述]
给定一个包含N个点,M条边的无向图,每条边的边权均为1。
再给定K个三元组(A,B,C),表示从A点走到B点后不能往C点走。注意三元组是有序的,如可以从B点走到A点再走到C。
现在你要在K个三元组的限制下,找出1号点到N号点的最短路径,并输出任意一条合法路径,会有Check检查你的输出。
[输入格式]
输入文件第一行有三个数N,M,K,意义如题目所述。
接下来M行每行两个数A,B,表示A,B间有一条边。
再下面K行,每行三个数(A,B,C)描述一个三元组。
[输出格式]
输出文件共两行数,第一行一个数S表示最短路径长度。
第二行S+1个数,表示从1到N所经过的节点。
[样例输入]
4 4 2
1 2
2 3
3 4
1 3
1 2 3
1 3 4
[样例输出]
4
1 3 2 3 4
[数据范围]
文档评论(0)