1、最新 料推荐 CCF 全国信息学奥林匹克联赛(NOIP2013 )复赛普及组(请选手务必仔细阅读本页内容)一题目概况中文题目名称计数问题表达式求值小朋友的数字车站分级英文题目与子目录名countexprnumberlevel可执行文件名countexprnumberlevel输入文件名count.inexpr.innumber.inlevel.in输出文件名count.outexpr.outnumber.outlevel.out每个测试点时限1 秒1 秒1 秒1 秒测试点数目10101010每个测试点分值10101010附加样例文件有有有有结果比较方式全文比较(过滤行末空格及文末回车)题目类型
2、传统传统传统传统运行内存上限128M128M128M128M二提交源程序文件名对于 C+ 语言count.cppexpr.cppnumber.cpplevel.cpp对于 C 语言umber.clevel.c对于 pascal 语言count.pasexpr.pasnumber.paslevel.pas1最新 料推荐 三编译命令(不包含任何优化开关)对于 C+ 语言g+ - o countg+ - o exprg+ - o numberg+ - o levelcount.cpp -lmexpr.cpp lmnumber.cpp -lmlevel.cpp -lm对于 C 语言gcc - o co
3、untgcc - o exprgcc- o numbergcc - o levelcount.c -lmexpr.c -lmnumber.c -lmlevel.c -lm对于 pascal 语言fpc count.pasfpc expr.pasfpc number.pasfpc level.pas注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。2、 C/C+中函数 main() 的返回值类型必须是int,程序正常结束时的返回值必须是0。3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) 64x2 Dual Core CPU 5200+,2.71GHz ,内
4、存 2G,上述时限以此配置为准。4、只提供 Linux 格式附加样例文件。5、特别提醒:评测在NOI Linux下进行。1 记数问题(count.cpp/c/pas)【问题描述】试计算在区间1 到 n 的所有整数中,数字x( 0 x)9共出现了多少次?例如,在1到 11 中,即在1 、 2、 3、 4、 5 、 6 、7 、 8、 9 、 10 、 11 中,数字1 出现了 4 次。【输入】输入文件名为count.in 。输入共 1 行,包含2 个整数 n、 x,之间用一个空格隔开。【输出】输出文件名为count.out。输出共 1 行,包含一个整数,表示x 出现的次数。【输入输出样例】cou
5、nt.incount.out11 142最新 料推荐 【数据说明】对于 100% 的数据, 1 n 1,000,000, x。 92 表达式求值(expr.cpp/c/pas)【问题描述】给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。【输入】输入文件为expr.in。输入仅有一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“+”和乘法运算符“ *”,且没有括号,所有参与运算的数字均为0 到 231-1 之间的整数。输入数据保证这一行只有0 9、 +、 * 这 12 种字符。【输出】输出文件名为expr.out。输出只有一行,包含一个整数,表示这个表达式的值。注意:当答
6、案长度多于4 位时,请只输出最后4 位,前导0 不输出。【输入输出样例1】expr.inexpr.out1+1*3+48【输入输出样例2】3p 取模后输最新 料推荐 expr.inexpr.out1+1234567890*17891【输入输出样例3】expr.inexpr.out1+1000000003*14【输入输出样例说明】样例 1 计算的结果为8,直接输出 8。样例 2 计算的结果为1234567891 ,输出后4位,即 7891。样例 3 计算的结果为1000000004 ,输出后4位,即 4。【数据范围】对于 30%的数据, 0 表达式中加法运算符和乘法运算符的总数 100;对于 8
7、0%的数据, 0 表达式中加法运算符和乘法运算符的总数 1000;对于 100% 的数据, 0 表达式中加法运算符和乘法运算符的总数 100000。3 小朋友的数字(number.cpp/c/pas)【问题描述】有 n 个小朋友排成一列。每个小朋友手上都有一个数字,这个数字可正可负。规定每个小朋友的特征值等于排在他前面(包括他本人)的小朋友中连续若干个(最少有一个)小朋友手上的数字之和的最大值。作为这些小朋友的老师,你需要给每个小朋友一个分数,分数是这样规定的:第一个小朋友的分数是他的特征值,其它小朋友的分数为排在他前面的所有小朋友中(不包括他本人) ,小朋友分数加上其特征值的最大值。请计算所
8、有小朋友分数的最大值,输出时保持最大值的符号,将其绝对值对出。4最新 料推荐 【输入】输入文件为number.in。第一行包含两个正整数n、 p,之间用一个空格隔开。第二行包含n 个数,每两个整数之间用一个空格隔开,表示每个小朋友手上的数字。【输出】输出文件名为number.out。输出只有一行,包含一个整数,表示最大分数对p 取模的结果。【输入输出样例1】number.innumber.out5 997211 2 3 4 5【输入输出样例说明】小朋友的特征值分别为1、 3 、 6 、 10 、15 ,分数分别为1、 2、 5 、 11 、21 ,最大值21对 997 的模是 21 。【输入输
9、出样例2】number.innumber.out5 7-1-1 -1 -1 -1 -1【输入输出样例说明】小朋友的特征值分别为-1 、-1 、 -1 、 -1 、 -1 ,分数分别为 -1 、 -2 、 -2 、 -2 、 -2 ,最大值-1 对 7 的模为 -1 ,输出 -1 。【数据范围】对于50%的数据, 1 n 1,000, p 1,000所有数字的绝对值不超过 1000;对于 100% 的数据, 1 n 1,000,000, p99,其10他数字的绝对值均不超过10 。5最新 料推荐 4 车站分级(level.cpp/c/pas)【 描述】一条 向的 路 上,依次有 号 1, 2,
10、, n 的 n 个火 站。每个火 站都有一个 ,最低 1 。 有若干趟 次在 条 路上行 ,每一趟都 足如下要求:如果 趟 次停靠了火 站x, 始 站、 点站之 所有 大于等于火 站x 的都必 停靠。(注意:起始站和 点站自然也算作事先已知需要停靠的站点)例如,下表是5 趟 次的运行情况。其中,前4 趟 次均 足要求,而第5 趟 次由于停靠了 3 号火 站( 2 )却未停靠途 的6 号火 站(亦 2 )而不 足要求。 站 号123456789 站 312132113 次1始 停 停 终2始 停 终3始 停 终4始 停 停 停 停 终5始 停 终 有 m 趟 次的运行情况(全部 足要求), 推算
11、 n 个火 站至少分 几个不同的 。【 入】 入文件 level.in 。第一行包含2 个正整数n, m,用一个空格隔开。6最新 料推荐 第 i + 1 行( 1im)中,首先是一个正整数si (2si n),表示第i 趟车次有si 个停靠站;接下来有si 个正整数,表示所有停靠站的编号,从小到大排列。每两个数之间用一个空格隔开。输入保证所有的车次都满足要求。【输出】输出文件为level.out 。输出只有一行,包含一个正整数,即n 个火车站最少划分的级别数。【输入输出样例】level.inlevel.out9 224 1 3 5 63 3 5 69 334 1 3 5 63 3 5 63 1 5 9【数据范围】对于 20%的数据, 1n, m 10;对于50%的数据, 1 n, m 100;对于 100%的数据, 1n, m 1000。7