noip模拟赛题目

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档