noip模拟赛题目
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模拟赛
时间:3个小时难度:NOIp提高组
题目总览
子串清除
clear.pas/c/cpp
【问题描述】
我们定义字符串A是字符串B的子串当且仅当我们能在B串中找到A串。现在给你一个字符串A,和另外一个字符串B,要你每次从B串中从左至右找第一个A串,并从B串中删除它,直到A串不为B串的子串,问你需要进行几次删除操作。
【输入格式】
输入文件共2行,第一行一个字符串A(长度小于256),第二行一个字符串B。
【输出格式】
输出文件只有一个整数N。
【数据范围】
30%的数据是随机生成的;
50%的数据满足输入文件大小小于300KB;
100%的数据满足输入文件小于500KB,字符串A、B中只会出现英文字母。
【样例输入】
abc
abcabcabaabcbccc
【样例输出】
5
【样例说明】
abcabcabaabcbccc-> abcabaabcbccc-> abaabcbccc-> ababccc-> abcc
民主选举
vote.pas/c/cpp
[问题描述]
众所周之,sub有好多好多小弟.具体来说,有n个小弟.那么谁是最强的小弟呢?sub决定投票决定.
准确地说,sub选定了m个投票者.他决定搞n-1轮投票,每轮投票都淘汰他的一个小弟..当然了,每轮被淘汰的那个小弟一定是当轮得票数最少的那个.
这m个投票者对每个小弟都会有一个喜爱程度,他们会根据这个程度来决定票投给谁.第一轮他们一定会投票给他们最喜欢的那个小弟,之后的每一轮,他们都会投票给还没被淘汰的他们最喜欢的小弟.
对于每一轮来说,假如有两个小弟得票数并列倒数第一,那么编号大的小弟会被淘汰(因为小弟们的编号是根据sub对他们的喜爱程度编号的...).
现在sub想知道,在第1,2,3...n-1轮分别被淘汰的,以及最终胜出的分别是哪个小弟?
[输入描述]
第一行两个数n,m(n,m<=1000)分别表示小弟的个数和投票者的个数.
接下来是一个m行n列的矩阵,第i行第j列表示投票者i的第j喜欢的小弟是谁.
[输出描述]
n行,每行一个编号表示在该轮中被淘汰的小弟的编号.(我们假设最后胜出的小弟在第n轮被sub淘汰了...)
[样例输入]
4 4
2 1
3 4
1 3
2 4
2 3 4 1
1 2 4 3
[样例输出]
4
3
2
1
[运行时间]
1s
最小与最大
minmax.pas/c/cpp
【问题描述】
做过了乘积最大这道题,相信这道题也难不倒你。
已知一个数串,可以在适当的位置加入乘号(设加了k个,当然也可不加,即分成k+1个部分),设这k+1个部分的乘积(如果k=0,则乘积即为原数串的值)对m 的余数(即mod m)为x;
现求x能达到的最小值及该情况下k的最小值,以及x能达到的最大值及该情况下的k的最小值(可以存在x的最小值与最大值相同的情况)。
【输入】
第一行为数串,长度为n 满足2<=n<=1000,且数串中不存在0;
第二行为m,满足2<=m<=50。
【输出】
四个数,分别为x的最小值和该情况下的k,以及x的最大值和该情况下的k,中间用空格隔开。
【样例输入】
4421
22
【样例输出】
0 1 21 0
成绩单
maowant.pas/c/cpp
【问题描述】
一中的学生很郁闷啊!每天都要考试,考不好了还要挨批斗~~~~~
又考试了,这次考试的人数特别多,每个人的学号很特别,是用字符串表示的,(不超过30 位),可是学校负责考试的老师请假回家了,所以这次考试没有人安排考场了。
无奈啊~~~~~~
所以m哥决定让学生在自己的座位上考试,实行诚实考试制度(没有监考老师)。一中的学生很听话啊~~~~,每个人都没有作弊。
但是录分、统计成了问题,学生的考试成绩放在了输入文件中。
m哥今天太累了,,但是他还是很关心学生的成绩的,于是他让你把学生的成绩按学号排列(字典顺序,学号全为小写字母,从小到大排列)(不排成绩),并统计各个分数,及分数段的人数,以及满分人员(满分要XX奖学金的,虽然一般只有几十块-_-bbb)
【输入数据】
第一行:一个数n (n<=130000人)
以下n行:每行两个信息,分别为学号,分数(1~150分)
【输出数据】
第一行各个分数段(空格隔开)(例如1~10 11~20 ……(见例样输出,不包括150分的人数))
第二行各个分数段的人数(空格隔开,没有则输出0 )
接下来的n 行,分别为n个学生的学号,成绩,(空格隔开)
再接下来的一行为满分的人的人数x(如果没有则为0)(保证x不超过10000)
接下来的x行为满分人的学号(如果x为0则为一行‘No’)(按字典序从小到大排序)每一行的每一个数据之间用空格隔开,最后一个数据后不允许有空格。
【样例输入】
3
bid 50
wxy 85
alc 55
【样例输出】
1~9 10~19 20~29 30~39 40~49 50~59 60~69 70~79 80~89 90~99 100~109 110~119 120~129 130~139 140~149
0 0 0 0 0 2 0 0 1 0 0 0 0 0 0
alc 55
bid 50
wxy 85
No