2014noip复赛模拟练习10

合集下载

NOIP2014普级组复赛试题

NOIP2014普级组复赛试题

CCF全国信息学奥林匹克联赛(NOIP2014)复赛普及组(请选手务必仔细阅读本页内容)一.题目概况中文题目名称珠心算测试比例简化螺旋矩阵子矩阵英文题目与子目录名count ratio matrix submatrix 可执行文件名count ratio matrix submatrix 输入文件名count.in ratio.in matrix.in submatrix.in 输出文件名count.out ratio.out matrix.out submatrix.out 每个测试点时限1秒1秒1秒1秒测试点数目10 10 10 20 每个测试点分值10 10 10 5 附加样例文件有有有有结果比较方式全文比较(过滤行末空格及文末回车)题目类型传统传统传统传统运行内存上限128M 128M 128M 128M二.提交源程序文件名对于C++语言count.cpp ratio.cpp matrix.cpp submatrix.cpp 对于C语言count.c ratio.c matrix.c submatrix.c 对于pascal语言count.pas ratio.pas matrix.pas submatrix.pas三.编译命令(不包含任何优化开关)对于C++语言g++ -o countcount.cpp -lm g++ -o ratioratio.cpp -lmg++ -o matrixmatrix.cpp -lmg++ -o submatrixsubmatrix.cpp -lm对于C语言gcc -o countcount.c -lm gcc -o ratio ratio.c-lmgcc -o matrixmatrix.c -lmgcc -o submatrixsubmatrix.c -lm对于pascal语言fpc count.pas fpc ratio.pas fpc matrix.pas fpc submatrix.pas注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。

2014noip复赛模拟练习11(答案)

2014noip复赛模拟练习11(答案)

新学年就要开始了,爸爸把N元钱给了小青,让他购买一批文具,并作了以下要求:只能买圆珠笔、铅笔和铅笔芯,并且每样至少买一支,总数要超过30支,而且钱要全部花完。

当小青去到文具店时,发现圆珠笔8角钱一支、铅笔2角钱一支、铅笔芯1角钱一支。

小青怎么买才能符合爸爸的要求呢?请你编个程序帮他算出符合购买要求的所有方案总数。

Input一个整数N,表示购买文具一共的元数。

(1 <= N <= 50)Output一个整数,即符合购买要求的所有方案总数。

Sample Input 8Sample Output 135Sourceprogram ex1294;var n,i,j,k,sum:integer;beginreadln(n);n:=n*10;sum:=0;for i:=1 to n div 8 dofor j:=1 to n div 2 dobegink:=n-i*8-j*2;if (i+j+k>30) and (k>1) then inc(sum);end;writeln(sum);end.任意一个数都可以由1、2、3三个数组合而成。

如4有以下7种组合方案:1 + 1 + 1 + 11 + 1 + 21 +2 + 12 + 1 + 12 + 21 + 33 + 1你的问题来了,对于给定的一个数,请你计算出这个整数可以有多少个组合方案,其和由1、2、3组合而成。

数据输入输入包含多组数据,每一组数据中,输入数据的第一行为一个整数n(1<=n<=20),要分解的数。

数据输出这个整数的分解的组合数。

样例输入4样例输出7分析用f(n)表示将n按照1、2、3分解的方法数当n=1时,f(1)=1; {1}当n=2时,f(2)=2; {1+1},{2}当n=3时,f(3)=3; {1+1+1},{1+2},{2+1},{3} 当 n=k时 (k>=4)考虑最后添加的一个数字可能是1、2、3。

2014noip复赛模拟练习12(答案)

2014noip复赛模拟练习12(答案)

心系南方灾区【问题描述】现在我国南方正在承受百年不遇的大雪、冻雨灾害。

北京市已经开始了面向全体市民的捐款捐物活动,并组织运力,以最快速度将这些救灾物资运送到灾区人民的手中。

已知救灾物资中有m件大衣(10000<=m<=2000000 ),一辆卡车一次最多可以运走n件大衣(2000<=n<=10000)。

请你编写程序计算一下,要将所有的大衣运走,北京市政府最少需要调动多少辆卡车参与运送。

【输入文件】文件名:HELP.IN文件中只有两个整数m、n 。

【输出文件】文件名:HELP.OUT文件中只有一个整数,表示需要的卡车数量。

【样例输入】10000 2000【样例输出】5Delphi语言: Codee#10155program help;vara,b:longint;beginassign(input,'help.in');assign(output,'help.out');reset(input);rewrite(output);readln(a,b);if a mod b=0 then write(a div b) else write(a div b+1);close(input);close(output);end.给出某两个整数a和b(a<=b)的最大公约数GCD和最小公倍数LCM,请找出满足的a和b,使得b-a的值最小。

Input输入数据只有一行,包括两个整数GCD和LCM。

输入保证至少存在一组解。

Output输出包含一个整数,为最小的b-a的值。

Sample Input Copy6 36Sample Output Copy6HINT对于100%的数据,1<=a<=b<=10^9。

解法:设原数为x,y则有x*y/gcd=lcm,且x/gcd与y/gcd互质,(x/gcd*y/gcd)*gcd=lcm,故我们只要求出两个互质数相乘=lcm/gcd即可代码:vara,b,i:longint;function gcd(a,b:longint):longint;beginif a mod b=0 then exit(b) else exit(gcd(b, a mod b));end;beginreadln(a,b);b:=b div a;for i:=trunc(sqrt(b)) downto 1 do if (b mod i=0) and (gcd(i,b div i)=1)then break;writeln(a*(abs(i-(b div i))));end.集训队有一个大杯子,大家训练累的时候都用这个东西来喝咖啡,喝咖啡就需要热水,喝热水就需要烧水,烧水烧多少是一个问题,现在我们知道烧了多少热水,你能告诉我们把这些水倒在杯子里面会有多高吗?杯子是这样的:我们知道杯子上面的圆的半径,还有下面圆的半径,还有杯子的高。

2014noip复赛模拟练习10(答案)

2014noip复赛模拟练习10(答案)

喜羊羊运动会——撑杆跳高【试题描述】运动会马上就要开始了,撑杆跳高场地上,羊村的N(3 <= N <= 100 )个村民正排成一队有秩序地练习。

“好高啊,我都不知道自己能不能跳过去”,懒羊羊慢条斯理地说道。

“这么高,不知道最少要几只羊叠在一起才会够得着”,沸羊羊向来比较喜欢思考数学问题,这样说道。

试编一程序,计算出最少要几只羊叠在一起(一头羊踩在另一头羊的背上)才能够得着横杆(所谓够得着,指羊的身高总和不小于横竿的高度B)。

如果N头羊叠在一起,都够不着横竿,则输出“Impossible”【输入描述】第一行:两个整数N(3 <= N <= 100 )和B,表示队伍中羊的总数以及横竿的高度。

第二行:空格隔开的N个整数,表示每只羊的身高Hi(1 <= Hi <= 10000 )。

【输出描述】一行,一个整数,表示最少要几头羊才能够到横竿。

如果N只羊叠在一起都够不着则输出“Impossible”。

【输入样例】样例1:5 236 8 1 3 9样例2:6 161 2 3 1 3 5【输出样例】样例1:3样例2:Impossible【试题来源】武进区夏令营程序设计小能手PKprogram ex1797;var n,i,j,t,sum:integer;b,s:real;a:array[1..100] of integer;beginreadln(n,b);for i:=1 to n do read(a[i]);for i:=1 to n-1 dofor j:=i+1 to n doif a[i]<a[j] then begint:=a[i];a[i]:=a[j];a[j]:=t;end;s:=0; i:=0;sum:=0;repeatinc(i);s:=s+a[i];inc(sum);until (s>=b) or (i>=n);if s<b then write('Impossible') else write(sum);end.彩票摇奖(LOTTERY.PAS)【问题描述】为了丰富人民群众的生活、支持某些社会公益事业,北塔市设置了一项彩票。

2014noip复赛模拟练习11

2014noip复赛模拟练习11

1. 新学年就要开始了,爸爸把N元钱给了小青,让他购买一批文具,并作了以下要求:只能买圆珠笔、铅笔和铅笔芯,并且每样至少买一支,总数要超过30支,而且钱要全部花完。

当小青去到文具店时,发现圆珠笔8角钱一支、铅笔2角钱一支、铅笔芯1角钱一支。

小青怎么买才能符合爸爸的要求呢?请你编个程序帮他算出符合购买要求的所有方案总数。

Input :一个整数N,表示购买文具一共的元数。

(1 <= N <= 50)Output :一个整数,即符合购买要求的所有方案总数。

Sample Input 8 Sample Output 1352. 任意一个数都可以由1、2、3三个数组合而成。

如4有以下7种组合方案:1 + 1 + 1 + 1 1 + 1 + 2 1 + 2 + 1 2 + 1 + 1 2 + 2 1 + 3 3 + 1你的问题来了,对于给定的一个数,请你计算出这个整数可以有多少个组合方案,其和由1、2、3组合而成。

数据输入:输入包含多组数据,每一组数据中,输入数据的第一行为一个整数n(1<=n<=20),要分解的数。

数据输出:这个整数的分解的组合数。

样例输入 4 样例输出73. 聪明的小地鼠:在学校里的试验田里面,种了n个大萝卜,小地鼠又非常的喜欢吃萝卜。

它呢,就会出来偷偷的从试验田中偷萝卜。

大萝卜都是种在一排地里面,认真的管理员,按照萝卜的位置早早的给萝卜编了号。

希望能增加管理,保证产量。

谁知道,小地鼠也有了自己的偷萝卜策略。

同样,在这个地里呢,正好也有n只小地鼠,这些小地鼠,他们都是按照顺序出来偷萝卜。

小地鼠们根据自己的出场顺序编好号,然后开始根据自己的编号开始偷萝卜。

因为,小地鼠的老大(即1号老鼠),很胖,所以他决定多偷萝卜了,而只是拿了1号萝卜,把剩余的萝卜交给他的小弟们。

当然,他为了让管理员还能够有点收入,好以后继续种萝卜,就给小弟们,下达了一个命令。

即每个地鼠只能拿自己编号倍数的大萝卜,但是不能拿与自己编号相同的萝卜。

2014noip复赛模拟练习2(答案)

2014noip复赛模拟练习2(答案)

1.某监狱里有个很长的走廊,走廊中一个接一个地有N个房间。

每个房间中锁着一个犯人。

一天夜里,狱警决定玩一个无聊游戏。

第1轮中,他喝了一口威士忌,然后打开每个房间。

第2轮,他喝了一口威士忌,然后按2的倍数遍历每个房间。

第3轮,他又喝了一口威士忌,然后遍历所有3的倍数的房间。

依次类推。

在遍历中,如果房间是锁着的,则打开;否则锁上。

他这样重复N轮,最终醉酒。

这时有些囚犯看到自己房间的锁被打开了,他们立即逃跑。

对于有N个房间的走廊,最终会有多少囚犯逃脱?输入:输入数据的第一行中有一个整数,表示有多少组测试数据。

接下来的若干行每行包含一个值为5-100的整数,这是房间的数目。

输出:对应输入数据输出多行,每行一个整数,表示逃脱的囚犯数量。

样例输入:25100样例输出:210var n,num,s,m,i,k,j:integer;a:array[0..200]of boolean;begin readln(num);for i:=1 to num dobegin readln(n);fillchar(a,sizeof(a),true);for j:=1 to n dofor k:=1 to n doif k mod j=0 then a[k]:=not a[k];s:=0;for j:=1 to n doif a[j]=false then inc(s);writeln(s);end;end. 输入3 10 35 50输出3 5 7输入3 22 68 99 输出 4 8 9输入5 10 30 60 85 100 输出 3 5 7 9 10一个自然数,若它的素因数至少是两重的(相同的素因数至少个数为二个,如:24=2*2*2*3,则称该数为“漂亮数”。

若相邻的两个自然数都是“漂亮数”,就称它们为“孪生漂亮数”,例如8和9就是一对“孪生漂亮数”。

输入X,Y,编程找出[X,Y]之间的所有“孪生漂亮数”。

如输入2 25,则输出8 924 25var i,n,a,t,x,y,s:longint; f :boolean;begin readln(x,y);a:=x;repeata:=a+1;n:=a;f:=false; i:= 2 ;while n >= i do begint:=0;while n mod i = 0 do begint:=t+1;n := n div i;end;if t>=2 then f:=true;i := i+1;end;if f then beginn:=a+1;f:=false; i:= 2 ;while n >= i do begint:=0;while n mod i = 0 do begint:=t+1;n := n div i;end;if t>=2 then f:=true;i := i+1;end; end;if f then begin s:=s+1; writeln(a,’‘,a+1);end;until a=y;readln;end.输入50 120输出63 64 75 76 80 81 98 99 99 100 116 117 120 121 输入354 480 输出360 361 363 364 368 369 。

2014noip普及组复赛测试(答案)

2014noip普及组复赛测试(答案)

老师给笑笑布置了一份作业,笑笑不知如何解决。

老师给了一串很长的数列,要求从中找出连续的一段来使的总和最大。

【输入文件】:第一行包含一个整数n,表示数列的长度。

(n<=100000)第二行包含n个整数来描述这个数列,每个整数的的绝对值不超过1000。

【文件输出】:文件中只有一个整数,为最大的连续段总和。

【输入样例】:51 -23 1 -4【输出样例】4vars:array[1..10000] of longint;n,ii,t,ans:longint;beginreadln(n);for i:=1 to n doread(s[i]);t:=s[1];ans:=s[1];for i:=2 to n dobeginif t<0 then t:=s[i] else t:=t+s[i];if t>ans then ans:=t;end;writeln(ans);end.输入61 5 4 -2 63 输出17输入1024 -12 9 11 7 20 -8 15 3 18 输出87输入710 8 9 -5 12 6 11 输出51输入205 12 19 20 -7 -6 18 22 19 8 11 33 15 32 17 -30 4 14 24 -13输出230【问题描述】鲁宾逊先生有一只宠物猴,名叫多多。

这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”。

鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。

在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图1)。

有经验的多多一眼就能看出,每棵花生植株下的花生有多少。

为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株,去采摘它的花生;然后再找出剩下的植株里花生最多的,去采摘它的花生;依此类推,不过你一定要在我限定的时间内回到路边。

”我们假定多多在每个单位时间内,可以做下列四件事情中的一件:1)从路边跳到最靠近路边(即第一行)的某棵花生植株;2)从一棵植株跳到前后左右与之相邻的另一棵植株;3)采摘一棵植株下的花生;4)从最靠近路边(即第一行)的某棵花生植株跳回路边。

NOIP2014复赛提高组模拟试题

NOIP2014复赛提高组模拟试题

CCF 全国信息学奥林匹克联赛(NOIP2014)复赛提高组 day1(请选手务必仔细阅读本页内容)一、题目概况二、提交源程序文件名三、编译命令(不包含优化开关)注意事项: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 下进行。

6、为了方便评测请以自己名字的拼音为文件夹名,而且将原程序直接保存在文件夹内,不用再新建子文件夹。

1.斐波那契(pf.pas/c/cpp)【问题描述】是个斐波那契数迷。

他是如此的酷爱这个数列,因此他想知道很多关于这个数列的东西,比方说第个斐波那契数是多少啊、前项的和是多少啊如何用若干个斐波那契数的和表示一个自然数啊之类之类的。

今天他希望知道的是:第个斐波那契数的末尾一位是多少?记表示第个斐波那契数,。

【输入】输入文件名为pf.in,共行。

输入只有一个数。

【输出】输出文件名为pf.out,仅一行,即第个数的最后一位。

【输入输出样例】【数据说明】对于3的数据满足,;对于的数据满足,。

(toy.pas/c/cpp)【问题描述】一天小D去超市买回来了一个玩具,这个玩具是由n个球和一些支架组成,每一个支架连接着两个不同的球,通过支架每两个球之间的简单路径有且只有一条,如果某一个支架的两端的球全被拿走,那么这个玩具就会垮掉。

小D无聊的时候开始拿走球,问,他有多少中拿球方案,使玩具不垮。

【输入】输入文件名为toy.in。

第一行一个数n 表示球的个数接下来若干行每行两个数a,b表示有一个支架连接着球a和球b【输出】输出文件名为toy.out.一行一个数ans 表示DRJ拿球的方案数mod 109+7(可以一个球也不拿)【输入输出样例】【数据说明】30%的数据满足n<=20;50%的数据满足n<=1000100%的数据满足 n<=500000;(running.cpp/c/pas)【问题描述】某校开展了同学们喜闻乐见的阳光长跑活动。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 喜羊羊运动会——撑杆跳高:运动会马上就要开始了,撑杆跳高场地上,羊村的N(3 <= N <= 100 )个村民正排成一队有秩序地练习。

“好高啊,我都不知道自己能不能跳过去”,懒羊羊慢条斯理地说道。

“这么高,不知道最少要几只羊叠在一起才会够得着”,沸羊羊向来比较喜欢思考数学问题,这样说道。

试编一程序,计算出最少要几只羊叠在一起(一头羊踩在另一头羊的背上)才能够得着横杆(所谓够得着,指羊的身高总和不小于横竿的高度B)。

如果N头羊叠在一起,都够不着横竿,则输出“Impossible”
【输入描述】第一行:两个整数N(3 <= N <= 100 )和B,表示队伍中羊的总数以及横竿的高度。

第二行:空格隔开的N个整数,表示每只羊的身高Hi (1 <= Hi <= 10000 )。

【输出描述】一行,一个整数,表示最少要几头羊才能够到横竿。

如果N只羊叠在一起都够不着则输出“Impossible”。

【输入样例】样例1:5 23↙6 8 1 3 9 样例2:6 16↙
1 2 3 1 3 5 【输出样例】样例1:3 样例2:Impossible
2. 在一棵树上有n只鸟。

由于感受到了自然的力量,它们希望学习自然数。

因此它们站在树上,演唱所有自然数。

自然数是从1开始的,按照递增的顺序演唱。

当演唱到K时,会有K只鸟受不了而飞走。

如果演唱到某个自然数而鸟数不足时,它们会从1开始重新演唱。

假设每秒钟它们都会演唱一个自然数,请你求一求,所有鸟都飞走需要多长时间。

如输入 3 输出2 输入 4 输出3【样例说明】第一秒,一只鸟飞走。

第二秒,两只鸟飞走。

第三秒时,需要三只鸟,但只剩一只鸟,因此它会从1开始演唱,并且飞走。

3. 彩票摇奖(LOTTERY.PAS) 为了丰富人民群众的生活、支持某些社会公益事业,北塔市设置了一项彩票。

该彩票的规则是:
(1) 每张彩票上印有7 个各不相同的号码,且这些号码的取指范围为1~33。

(2) 每次在兑奖前都会公布一个由七个各不相同的号码构成的中奖号码。

(3) 共设置7 个奖项,特等奖和一等奖至六等奖。

兑奖规则如下:
特等奖:要求彩票上7 个号码都出现在中奖号码中。

一等奖:要求彩票上有6 个号码出现在中奖号码中。

二等奖:要求彩票上有5 个号码出现在中奖号码中。

三等奖:要求彩票上有4 个号码出现在中奖号码中。

四等奖:要求彩票上有3 个号码出现在中奖号码中。

五等奖:要求彩票上有2 个号码出现在中奖号码中。

六等奖:要求彩票上有1 个号码出现在中奖号码中。

注:兑奖时并不考虑彩票上的号码和中奖号码中的各个号码出现的位置。

例如,中奖号码为23 31 1 14 19 17 18,则彩票12 8 9 23 1 16 7 由于其中有两个号码(23 和1)出现在中奖号码中,所以该彩票中了五等奖。

现已知中奖号码和小明买的若干张彩票的号码,请你写一个程序帮助小明判断他买的彩票的中奖情况。

输入文件(LOTTERY.IN):输入文件的第一行只有一个自然数N ≤ 1000,表示小明买的彩票张数;第二行存放了7 个介于1 和33 之间的自然数,表示中奖号码;在随后的N 行中每行都有7 个介于 1 和33 之间的自然数,分别表示小明所买的N 张彩票。

输出文件(LOTTERY.OUT):依次输出小明所买的彩票的中奖情况(中奖的张数),首先输出特等奖的中奖张数,然后依次输出一等奖至六等奖的中奖张数。

输入输出样例:【输入样例】LOTTERY.IN:2
23 31 1 14 19 17 18 ↙12 8 9 23 1 16 7 ↙11 7 10 21 2 9 31
【输出样例】LOTTERY.OUT :0 0 0 0 0 1 1
4. 贪污排名(Rank.pas\c\cpp):党的十七大热烈召开,胡书记发表了热情洋溢的讲话,其中一个内容是腐败问题,胡书记强调共产党与贪污腐败水火不容,体现了反腐倡廉的决心。

2007年的确是不平凡的一年,尤其在反腐败问题上,确定做了不少工作,抓了N个腐败分子,每抓一个贪官都要求他报出自己的财富,用一个整数表示,胡书记每抓一个都想知道这个贪官在已经抓获的贪官中按照财富排第几名。

党把这个光荣的任务交给了你。

Input :输入文件Rank.in第一行输入一个整数N,表示今年抓获贪官的数量。

接下来N行,每行一个整数,表示按照今年被抓获的顺序给出这N个贪官的财富。

Output :输出文件Rank.out输出N行,第i行表示第i个贪官的财富在1-i 个贪官中排第几位。

Sample Input :6
78
24
68
40
39
89
Sample Output :1
2
2
3
4
1【数据说明】100%的数据N<=45000,财富互不相同且不超过2*10^9(虽然现实中可能不止)30%的数据N<=8000
5. 所谓丑数,就是指那些因子只含2,3,5的数。

1,2,3,4,5,6,8,9,10,12,15是最前面的11个丑数。

为了方便起见,把1也看作是丑数。

请你编写一个程序,输入n,n<3000,寻找并打印第n个丑数。

如输入:11 输出:15
6. 锁妖塔的建造很特别,塔总共有n层,但是高度却不相同,这造成了小A爬过每层的时间也不同。

小A会用仙术,每用一次可以让他向上跳一层或两层,但是每次跳跃后小A都将用完灵力,必须爬过至少一层才能再次跳跃。

小A想用最短的时间爬到塔顶,可是他不能找到时间最短的方案。

所以请你帮他找到一个时间最短的方案让他爬到塔顶,小A只关心时间,所以你只要告诉他最短时间是多少就可以了。

[输入格式]tower.in 第一行一个整数n (n<=10000),表示塔的层数。

接下来的n行每行一个整数(<=100),表示从下往上爬每层所需的时间。

[输出格式]tower.out 一个数,表示最短时间。

[样例输入]5
3
5
1
8
4
[样例输出] 1
[数据规模]对20%的数据,n<=10 对40%的数据,n<=100 对60%的数据,n<=5000 对100%的数据,n<=10000。

相关文档
最新文档