noip普及组复赛模拟试题8
- 格式:doc
- 大小:29.00 KB
- 文档页数:2
CCF全国信息学奥林匹克联赛NOIP普及组复赛试题CCF全国信息学奥林匹克联赛(NOIP2018)复赛普及组(请选手务必仔细阅读本页内容)注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
3、全国统一评测时采用的机器配置为:Intel(R) Core(TM) i7-****************,内存32GB。
上述时限以此配置为准。
4、只提供Linux格式附加样例文件。
5、特别提醒:评测在当前最新公布的NOI Linux下进行,各语言的编译器版本以其为准。
1. 标题统计(title.cpp/c/pas)【问题描述】凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符?注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。
统计标题字符数时,空格和换行符不计算在内。
【输入格式】输入文件名为title.in。
输入文件只有一行,一个字符串s。
【输出格式】输出文件名为title.out。
输出文件只有一行,包含一个整数,即作文标题的字符数(不含空格和换行符)。
见选手目录下的title/title1.in和title/title1.ans。
【输入输出样例1说明】标题中共有3个字符,这3个字符都是数字字符。
见选手目录下的title/title2.in和title/title2.ans。
【输入输出样例2说明】标题中共有5个字符,包括1个大写英文字母,1个小写英文字母和2个数字字符,还有1个空格。
由于空格不计入结果中,故标题的有效字符数为4个。
【数据规模与约定】规定|s|表示字符串s的长度(即字符串中的字符和空格数)。
对于40%的数据,1≤|s|≤5,保证输入为数字字符及行末换行符。
对于80%的数据,1≤|s|≤5,输入只可能包含大、小写英文字母、数字字符及行末换行符。
对于100%的数据,1≤|s|≤5,输入可能包含大、小写英文字母、数字字符、空格和行末换行符。
全国信息学奥林匹克联赛(NOIP2007 )复赛普及组全国信息学奥林匹克联赛(NOIP 2007)复赛普及组题目一览题目名称奖学金纪念品分组守望者的逃离Hanoi 双塔问题代号scholar group escape hanoi 输入文件输出文件时限 1 秒 1 秒 1 秒 1 秒(2007 年 11 月 17 日 3 小时达成 )说明:1.文件名(程序名和输入输出文件名)一定使用小写2. C/C++ 中函数 main() 的返回值种类一定是int ,程序正常结束时的返回值一定是0。
3. 全国一致评测时采纳的机器参照配置为:CPU 2.0GHz ,内存 256M 。
1.奖学金(scholar.pas/c/cpp)【问题描绘】某小学近来获取了一笔资助,打算取出此中一部分为学习成绩优异的前 5 名学生发奖学金。
期末,每个学生都有 3 门课的成绩:语文、数学、英语。
先按总分从高到低排序,假如两个同学总分同样,再按语文成绩从高到低排序,假如两个同学总分和语文成绩都同样,那么规定学号小的同学排在前方,这样,每个学生的排序是独一确立的。
任务:先依据输入的 3 门课的成绩计算总分,而后按上述规则排序,最后按排名次序输出前5 名学生的学号和总分。
注意,在前 5 名同学中,每一个人的奖学金都不同样,所以,你一定严格按上述规则排序。
比如,在某个正确答案中,假如前两行的输出数据(每行输出两个数:学号、总分)是:7 2795 279这两行数据的含义是:总分最高的两个同学的学号挨次是7 号、 5 号。
这两名同学的总分都是 279(总分等于输入的语文、数学、英语三科成绩之和),但学号为7 的学生语文成绩更高一些。
假如你的前两名的输出数据是:5 2797 279则按输犯错误办理,不可以得分。
【输入】输入文件包含n+1行:第 1 行为一个正整数n,表示该校参加评比的学生人数。
第 2 到 n+1 行,每行有 3 个用空格分开的数字,每个数字都在0 到 100 之间。
NOIP2008模拟试题1(4P24)普及组1.报数(read.pas/c/cpp) OIP2010模拟试题4(4P36)[题目描述]CG同学又弄到一批新牛,新牛到了农场以后,首先要学习汉语,数的朗读成为新牛的一个难题,朗读绝对值小于10亿的数。
新牛们知道汉语中有如下的读数规则:1.首先读符号位,然后读整数部分,整数部分之后可能出现小数点,如果有小数部分则小数点一定出现,并且读出小数点之后读小数部分。
2.符号位的读法是:⑴正数,不论正号”+”是否出现,都不必读出符号位;⑵负数的最左边的符号是”-“,读成”负”(以“F”来表示“负”)。
3.整数部分的读法是:⑴如果整数部分不存在或者整数部分全是零则直接读成“零”(以“0”来表示“零”);⑵否则从整数部分中最左边的非零数字开始读起,然后以十、百、千、万、亿(分别以”S”、”B”、”Q”、”W”、“Y”来表示)等数量单位来拼读整数部分。
4.整数部分中:⑴每一个非零数字都必须结合各个相应的数量单位读出来;⑵每一段连续的“零”只能读成一个“零”,但是某一段连续的“零”的左侧或者右侧不存在非零数字(这里只考虑整数部分)则这一段“零”不应该读出来;5.如果有小数部分,则首先读“点”(以“D”来表示“点”),然后从左至右有顺序地读出各个小数位。
在读小数部分的时候不可以使用十、百、千、万、亿等数量单位;但是小数部分的每一个数字都需要读出来,连续的零不可以读成一个“零”,而应该分别读出。
6.如果数中有小数点而没有小数部分,则不应该把小数点读出来。
例如:-0020030004.567应该读成”F2Q03W04D567”,000.89应该读成”0D89”。
请你编写程序帮助新牛把给定的数正确地读出来。
[输入数据]输入文件仅一行,存放了一个数(不超过50字符),其绝对值小于10亿.[输出数据]输出文件仅一行,输出这个数的正确读法。
[样例输入]-0020030004.567[样例输出]F2Q03W04D567program cz;varst,s,t:string;p,i:integer;beginassign(input,'read.in');reset(input);assign(output,'read.out');rewrite(output);readln(st);if st[1]='-' then begindelete(st,1,1);i:=1;while (i<length(st)) do beginif (st[i]<>'0') then beginwrite('F');break;end;inc(i);end;end;p:=pos('.',st);if (p=0) then p:=length(st);i:=1;while (st[i]='0') and (i+1<p) doinc(i);delete(st,1,i-1);p:=pos('.',st)-1;if (p=-1) then p:=length(st);s:='';i:=(p-1) mod 4+1;while (i>0) and (i<=p) do begint:='';if (i>3) thenif (st[i-3]>'0') thent:=t+st[i-3]+'Q'else if (s<>'') and (s[length(s)]<>'0') thent:=t+'0';if (i>2) thenif (st[i-2]>'0') thent:=t+st[i-2]+'B'else if (t<>'') and (t[length(t)]<>'0') thent:=t+'0';if (i>1) thenif (st[i-1]>'0') thent:=t+st[i-1]+'S'else if (t<>'')and(t[length(t)]<>'0') thent:=t+'0';if (i>0) thenif (st[i]>'0') then t:=t+st[i]+'';if (t[length(t)]='0') then delete(t,length(t),1); if (t<>'') then begins:=s+t;case (p-i) div 4 of1:s:=s+'W';2:s:=s+'Y';end;end;inc(i,4);end;if (s='') then s:='0';write(s);if (pos('.',st)>0)and(length(st)>pos('.',st)) thenwrite('D',copy(st,p+2,length(st)-p-1));writeln;close(input);close(output);end.2.背单词(words)源程序名:words.pas/c/cpp输入文件名:word.in输出文件名:word.out时限:1秒问题描述:英语四级考试临近了,小Y却发现他已经把以前学的单词几乎忘光了。
一、新龟兔赛跑(文件名xgtsp.pas)新龟兔赛跑比赛即将举行,此次龟兔赛跑比赛的规则与以往有所不同,不再考察兔子和乌龟谁在最短的时间内跑完规定的路程,而是考察谁在规定时间内跑的路程更长,且兔子和乌龟跑步都是匀速的。
由于兔子的坏习惯,它总喜欢把比赛的总时间T小时中的K小时拿来睡觉。
现在给你比赛的总时间T、兔子的睡觉时间K、兔子的速度U、乌龟的速度V,需要你求出该次比赛谁最后获胜。
输入第一行为一个整数X,表示有X组输入数据。
每组数据只有一行,包括4个数T、K、U、V (1 ≤ T≤ 300,0 ≤ K ≤ T,1 ≤ U ≤ 100,1 ≤ V ≤ 100)。
对于每组数据,输出只有一个数,如果兔子获胜则输出-1,如果乌龟获胜则输出1,如果同时到达则输出0。
允许输入一组数后立即输出对应的结果。
样例输入:21 12 16 2 6 3样例输出:1-1varv,u,t,k,n,i:integer;beginreadln(n);for i:=1 to n do beginreadln(t,k,u,v);if v*t>U*(t-k) then writeln(1);if v*t<U*(t-k) then writeln(-1);if v*t=U*(t-k) then writeln(0);end;end.1、输入:26 2 6 28 6 8 2输出:-12、输入:2300 280 60 20120 0 12 13输出:113、输入:3100 20 50 30100 50 45 25100 80 27 17输出:-1114、输入:3150 77 29 23127 11 22 13139 22 13 7输出:1-1-1二、小球路程(文件名:XQLC.PAS )已知小球从100米高度自由下落,落地后反弹起,又落地,又弹起,……。
每次弹起的高度都是上一次高度的一半。
求小球第N次反弹起的高度和球在整个过程所经过的路程(包括下落和反弹),用键盘输入N,输出反弹高度和经过路程,结果保留两位小数。
P1909 买铅笔题目描述P教师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。
她发觉商店一共有3种包装的铅笔,不同包装内的铅笔数量有可能不同,价钱也有可能不同。
为了公平起见,P教师决定只买同一种包装的铅笔。
商店不许诺将铅笔的包装拆开,因此P教师可能需要购买超过n支铅笔才够给小朋友们发礼物。
此刻P教师想明白,在商店每种包装的数量都足够的情形下,要买够至少n支铅笔*最少*需要花费多少钱。
输入输出格式输入格式:输入的第一行包括一个正整数n,表示需要的铅笔数量。
接下来三行,每行用两个正整数描述一种包装的铅笔:其中第一个整数表示这种包装内铅笔的数量,第二个整数表示这种包装的价钱。
保证所有的7个数都是不超过10000的正整数。
输出格式:输出一行一个整数,表示P教师最少需要花费的钱。
输入输出样例输入样例#1:输出样例#1:输入样例#2:说明铅笔的三种包装别离是:•2支装,价钱为2;•50支装,价钱为30;•30支装,价钱为27。
P教师需要购买至少57支铅笔。
若是她选择购买第一种包装,那么她需要购买29份,共计2x29 = 58支,需要花费的钱为2x29 = 58。
事实上,P教师会选择购买第三种包装,如此需要买2份。
尽管最后买到的铅笔数量更多了,为30x2 = 60支,但花费却减少为27 x2 = 54,比第一种少。
关于第二种包装,尽管每支铅笔的价钱是最低的,但要够发必需买2份,实际的花费达到了30 x 2 = 60,因此P教师也可不能选择。
因此最后输出的答案是54。
【子任务】子任务会给出部份测试数据的特点。
若是你在解决题目中碰到了困难,能够尝试只解决一部份测试数据。
每一个测试点的数据规模及特点如下表:上表中“整倍数”的意义为:假设为“K”,表示对应数据所需要的铅笔数量n—定是每种包装铅笔数量的整倍数(这意味着必然能够不用多买铅笔)。
P2020 回文日期题目描述在日常生活中,通过年、月、日这三个要素能够表示出一个唯一确信的日期。
noip普及组复赛答案【篇一:noip普及组复赛入门测试(答案+测试数据)】class=txt>新龟兔赛跑比赛即将举行,此次龟兔赛跑比赛的规则与以往有所不同,不再考察兔子和乌龟谁在最短的时间内跑完规定的路程,而是考察谁在规定时间内跑的路程更长,且兔子和乌龟跑步都是匀速的。
由于兔子的坏习惯,它总喜欢把比赛的总时间t小时中的k小时拿来睡觉。
现在给你比赛的总时间t、兔子的睡觉时间k、兔子的速度u、乌龟的速度v,需要你求出该次比赛谁最后获胜。
输入第一行为一个整数x,表示有x组输入数据。
每组数据只有一行,包括4个数t、k、u、v (1 ≤ t≤ 300,0 ≤ k ≤ t,1 ≤ u ≤ 100,1 ≤ v ≤ 100)。
对于每组数据,输出只有一个数,如果兔子获胜则输出-1,如果乌龟获胜则输出1,如果同时到达则输出0。
允许输入一组数后立即输出对应的结果。
样例输入:21 12 16 2 6 3样例输出:1-1varv,u,t,k,n,i:integer;beginreadln(n);for i:=1 to n do beginreadln(t,k,u,v);if v*tu*(t-k) then writeln(1);if v*tu*(t-k) then writeln(-1);if v*t=u*(t-k) then writeln(0);end;end.1、输入:26 2 6 28 6 8 2输出:-12、输入:2300 280 60 20120 0 12 13输出:113、输入:3100 20 50 30100 50 45 25100 80 27 17输出:-1114、输入:3150 77 29 23127 11 22 13139 22 13 7输出:1-1-1二、小球路程(文件名:xqlc.pas )已知小球从100米高度自由下落,落地后反弹起,又落地,又弹起,??。
每次弹起的高度都是上一次高度的一半。
CCF 全国信息学奥林匹克联赛〔NOIP2021 〕复赛普及组〔请选手务必仔细阅读本页内容〕一.题目大要中文题目名称金币扫雷游戏求和销售员英文题目与子目录名coin mine sum salesman 可执行文件名coin mine sum salesman 输入文件名输出文件名每个测试点时限 1 秒 1 秒 1 秒 1 秒测试点数量10101010每个测试点分值10101010附加样例文件有有有有结果比较方式全文比较〔过滤行末空格及文末回车〕题目种类传统传统传统传统运行内存上限128M128M128M128M 二.提交源程前言件名对于 C++语言对于C语言对于 pascal语言三.编译命令〔不包括任何优化开关〕对于 C++语言g++ -o coin -g++ -o mine -g++ -o sum -g++ -o salesmanlm lm lm-lm 对于C语言gcc -o coin gcc -o mine gcc -o sum gcc -o salesman-lm-lm-lm-lm对于 pascal语言fpc fpc fpc fpc 本卷须知:1、文件名〔程序名和输入输出文件名〕必定使用英文小写。
2、 C/C++中函数 main()的返回值种类必定是int,程序正常结束时的返回值必定是3、全国一致评测时采用的机器配置为:CPU AMD Athlon(tm) II x2 240 processor4G,上述时限以此配置为准。
0 。
,,内存4、只供应 Linux格式附加样例文件。
5、特别提示:评测在当前最新宣告的NOI Linux下进行,各语言的编译器版本以其为准。
1.金币c/pas)国王将金作工,放忠的士。
第一天,士收到一枚金;此后两天〔第二天和第三天〕,每天收到两枚金;此后三天〔第四、五、六天〕,每天收到三枚金;此后四天〔第七、八、九、十天〕,每天收到四枚金⋯⋯;种工放模式会素来延下去:当 N 天每天收到 N 枚金后,士会在此后的 N+1 天里,每天收到 N+1 枚金。
NOIP2013复赛普及组试题CCF全国信息学奥林匹克联赛(NOIP2013)复赛普及组(请选手务必仔细阅读本页内容)一.题目概况三.编译命令(不包含任何优化开关)注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) 64x2 Dual Core CPU 5200+,2.71GHz,内存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 出现的次数。
【输入输出样例】【数据说明】对于100%的数据,1≤ n ≤ 1,000,000,0 ≤ x ≤ 9。
2.表达式求值(expr.cpp/c/pas)【问题描述】给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。
【输入】输入文件为expr.in。
输入仅有一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“+”和乘法运算符“*”,且没有括号,所有参与运算的数字均为0 到231-1 之间的整数。
输入数据保证这一行只有0~ 9、+、*这12 种字符。
【输出】输出文件名为expr.out。
输出只有一行,包含一个整数,表示这个表达式的值。
注意:当答案长度多于4 位时,请只输出最后4 位,前导0 不输出。
【输入输出样例1】【输入输出样例2】【输入输出样例3】【输入输出样例说明】样例1 计算的结果为8,直接输出8。
NOIP2003普及组复赛试题题一、乒乓球(Table.pas)【问题背景】国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。
其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。
华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白11分制和21分制对选手的不同影响。
在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。
【问题描述】华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果(截至记录末尾)。
比如现在有这么一份记录,(其中W表示华华获得一分,L表示华华对手获得一分):WWWWWWWWWWWWWWWWWWWWWWLW在11分制下,此时比赛的结果是华华第一局11比0获胜,第二局11比0获胜,正在进行第三局,当前比分1比1。
而在21分制下,此时比赛结果是华华第一局21比0获胜,正在进行第二局,比分2比1。
如果一局比赛刚开始,则此时比分为0比0。
你的程序就是要对于一系列比赛信息的输入(WL形式),输出正确的结果。
【输入格式】每个输入文件包含若干行字符串(每行至多20个字母),字符串有大写的W、L和E组成。
其中E表示比赛信息结束,程序应该忽略E之后的所有内容。
【输出格式】输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。
其中第一部分是11分制下的结果,第二部分是21分制下的结果,两部分之间由一个空行分隔。
【输入样例】WWWWWWWWWWWWWWWWWWWWWWLWE【输出样例】11:011:01:121:02:1题二、数字游戏(Game.pas)【问题描述】丁丁最近沉迷于一个数字游戏之中。
这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易。
游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分为m个部分,各部分内的数字相加,相加所得的m个结果对10取模后再相乘,最终得到一个数k。
1. Description 给定整数n(32位以内),判断它是否为2的方幂。
是就输出
'yes',否则输出'no'。
Input 一个整数n。
Output 一个字符串
Sample Input 4
Sample Output yes
2. 问题描述:
计算机软件版本通常被用来区分某种软件在不同时间的发布。
大部分软件版本号都是用“.”分隔的非负数的序列。
对两个不同的版本A = a1.a2.a3…an和B = b1.b2.b3…bm,如果下面两个条件之一成立,我们认为版本A要比版本B新:1.对某个i,我们有:对所有j < i, ai > bi 和aj = bj;
2.n比m大,而且对所有i < m, ai = bi。
(ai和bi都不超过LONGINT)
在这个问题里,你要对给定的一组版本号,按照上面的定义从旧到新排序。
输入文件(VERSIONS.IN):
输入文件第一行是一个整数N(N<=20),表示要排序的版本数。
接下来的N行每行一个版本号。
每个版本号是长度不超过50的字符串。
输出文件(VERSIONS.OUT):
将排好序的结果以每行一个版本号输出。
输入输出样例:
VERSIONS.IN
4
3.0.5
1
2.4
2.4.6
VERSIONS.OUT
1
2.4
2.4.6
3.0.5
3. 输入正整数N、M,求N÷M的值。
如果商的小数部分出现循环节,则输出时要求用圆括号将循环节括起来,如果商为整数,则输出为整数。
例如:1÷2=0.51÷3=0.(3) 22÷5=
4.4 33÷3=11
输入:N M
输出:N÷M的值(保证小数点后不超过50位,而且未尾不能有多余的0)样例:输入:N,M=45 56
输出:0.803(571428)
4.现在是晚餐时间,而母牛们在外面分散的牧场中。
农民约翰按响了电铃,所以她们开始向谷仓走去。
你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只
有一只速度最快的母牛)。
在挤奶的时候(晚餐前),每只母牛都在她自己的牧场上,一些牧场上可能没有母
牛。
每个牧场由一条条道路和一个或多个牧场连接(可能包括自己)。
有时,两个牧场(可能是自我相同的)之间会有超过一条道路相连。
至少有一个牧场和谷仓之间有道路连接。
因此,所有的母牛最后都能到达谷仓,并且母牛总是走最短的路径。
当然,母牛能向着任意一方向前进,并且她们以相同的速度前进。
牧场被标记为'a'..'z'和'A'..'Y',在用大写字母表示的牧场中有一只母牛,小写字母中则没有。
谷仓的标记是'Z',注意没有母牛在谷仓中。
PROGRAM NAME: comehome
INPUT FORMAT
第1 行: 整数P(1<= P<=10000),表示连接牧场(谷仓)的道路的数目。
第2 ..P+1行: 用空格分开的两个字母和一个整数:
被道路连接牧场的标记和道路的长度(1<=长度<=1000)。
SAMPLE INPUT (file comehome.in)
5
A d 6
B d 3
C e 9
d Z 8
e Z 3
OUTPUT FORMAT
单独的一行包含二个项目:
最先到达谷仓的母牛所在的牧场的标记,和这只母牛走过的路径的长度。
SAMPLE OUTPUT (file comehome.out)
B 11。