NOIP1997普及组 复赛试题

合集下载

NOIP复赛模拟试题I.doc

NOIP复赛模拟试题I.doc

NOIP 复赛模拟试题(I )1. 医院设置(hospital.cpp )【问题描述】设有一棵二叉树(如下閔,其中圈中的数字表示结点中居民的人口,圈边h 数字表示结 点编号。

现在要求在某个结点上建立一个返院,使所奋佔W 所走的路程之和为最小,同吋约 定,相邻结点之M 的距离为1。

就木阁而言,若医院建在1处,则距离和 =4+12+2*20+2*40=136;若民院建在 3 处,则距离和=4*2+13+20+40=81……【输入格式(hospital.in )]其中第一行一个整数n,表示树的结点数(n<=100)。

接K 来的n 行 每行描述了一个结点的状况,包含三个整数,整数之间川空格(一 个或多个)分隔,其中:第一个数为店民人口数;第二个数为左链 接,为0表示无链接;第三个数为右链接,为0表示无链接。

【输出格式(hospital.out )】该文件只有一个整数,表示最小距离和。

【样例输入】 5 1323400 12 4 5 20 0 0 40 0 0【样例输出】812. 而税(area.cpp )【问题描述】编程计算由“* ”号围成的下列图形的面积。

面积计算方法是统计*号所围成的闭合曲线中 水平线和垂直线交点的数目。

如右K 图所示,在10*10的二维数组中,有“围住了 15个点, 因此面积为15。

在输入中,为了方便起见使用“1”来代替右图中的“*”。

【输入格式(area.in )】°输入数据保证仅冇一个10*10的01矩阵° 【输出格式(area.out )】o0 00 0 一个数,表示面积 【样例输入】000000000000001110000000100100 0000010010 0010001010()10101 0 0 1 0010*******0010000100 00011111000000000000【样例输出】153.极值问题(number.cpp)【问题描述】已知m、n为整数,且满足下列两个条件:①m、nG { 1 , 2 ,…,k},即Km, n^k②(n2—m*n —m2) 2=1你的任务是:编程输入正整数k (l<k<109),求一组满足上述两个条件的m、n,并且使m2+n2的值最大。

1997高中组复赛试题

1997高中组复赛试题

第三届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题( 提高组 三小时完成)南开中学计算机奥赛培训 共1页第1页 第一题、在N*N 的棋盘上(1<=N<=10)填入1,2,...N*N 共N*N 个数,使得任意两个相邻的数之和为素数。

例如,当N=2时,有:其相邻数的和为素数的有:1+2,1+4,4+3,2+3,当N=4时,一种可以填写的方案如下:在这里我们约定:左上角的格子里必须放数字1程序要求:输入:N 输出:若有多种解,则需输出第一行,第一列之和均为最小的排列方案;若无解,则输出"NO!"第二题、代数表达式的定义如下:例如:下面式子是合法的代数表达式: a; a+b*(a+c); a*a/(b+c);下列式子是不合法的代数表达式: ab; a+b*(c+d); {因子中无字母d}程序要求:输入:输入一个字符串,以";"结束,(";"本身不是代数表达式中字符,仅作为结束符号)输出:若表达式正确,则输出:"OK";若表达式不正确,则输出"ERROR",及错误类型。

错误类型约定: 1.式子中出现不允许的字符; 2.括号不配对; 3.其他错误例如:输入a+(b); 输出:OK 例如:输入a+(b+c*a; 输出 error 2第三题、骑士游历:设有一个n*m 的棋盘(2<=n<=50,2<=m<=50),在棋盘上任一点有一个中国象棋马,马走的规则为:1.马走日字,从(1,1)可以走到(2,3)和(3,2)2.马只能向右走任务1:当N,M 输入之后,找出一条从左下角到右上角的路径。

例如:输入 N=4,M=4 输出:路径的格式:(1,1)->(2,3)->(4,4)若不存在路径,则输出"no"任务2:当N,M 给出之后,同时给出马起始的位置和终点的位置,试找出从起点到终点的所有路径的数目。

noip普及组复赛入门测试(答案+测试数据)

noip普及组复赛入门测试(答案+测试数据)

一、新龟兔赛跑(文件名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,输出反弹高度和经过路程,结果保留两位小数。

noip普及组复赛模拟试题9答案

noip普及组复赛模拟试题9答案

给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的?Input 一行,两个非负整数A和B(32位以内)。

Output 一行,一个整数。

Sample Input 1 0Sample Output 1program ex1558;var a,b,d:longint;t,s,i:integer;beginreadln(a,b);d:=a xor b;s:=0;for i:=1 to 32 dobegint:= d and 1 ;d:=d shr 1;s:=s+t;end;writeln(s);end. 输入 15 4 输出 3输入 3248 125 输出 7 输入 567894321 12134 输出16【试题描述】做操的时间到了,小明和另外几个同学没有吸取上一次的教训,在教室思考讨论老师讲的一道题目(学习用功型),当他们想通这个题时,其他同学已经在操场上排好队了,他们快速来到操场,希望尽快找到以前排队的位置,准备做操,小明他们记得应该排在某学号同学的后面。

你能不能来帮帮小明他们呢?【输入描述】输入(三行):n m(现在队伍的长度待插入的同学人数)n个同学的学号(5位整数)m组数据(每组2个,分别为插入位置的学生学号插入的学生学号)【输出描述】n+m个学号(插入后每个学生的学号)【输入样例】4 234812 34123 23133 4583134123 23483 45831 83123【输出样例】34812 34123 23483 23133 45831 83123program ex1144;var i,j,n,m:integer;a:array[1..300] of longint;b,c:longint;procedure make(x,y:longint);var i,t:integer;beginfor i:=1 to n doif x=a[i] then begin t:=i+1;break; end;for i:=n downto t do a[i+1]:=a[i];a[t]:=y;n:=n+1;end;beginreadln(n,m);for i:=1 to n do read(a[i]);for i:=1 to m dobeginread(b,c);make(b,c) ;end;for i:=1 to n-1 do write(a[i],' ');write(a[n]);end.输入 8 334812 34123 23133 45831 34517 45830 23134 3412034123 23483 45831 83123 34517 43234输出 34812 34123 23483 23133 45831 83123 34517 43234 45830 23134 34120输入 10 434812 34123 23133 45831 34517 45830 23134 34120 23122 3410934123 23483 45831 83123 34517 43234 23122 23167输出 34812 34123 23483 23133 45831 83123 34517 43234 45830 23134 34120 23122 23167 34109问题描述:如果一个数包含了0--9这十个数字,就称为十全数,因此1023456789是最小的十全数。

NOIP模拟1

NOIP模拟1

NOIP普及组复赛模拟题1.冰壶比赛(curling.pas/c/cpp)【问题描述】在冰壶比赛中,给出一个目标点P,以及一个规定的正整数r。

每一局由甲乙两队轮流投冰壶各8次后,该局比赛结束。

此时,哪一方的冰壶最终离目标点P更近,该方得分,另一方不得分。

得分方每颗离目标点P距离小于或等于r、位置较另一队所有冰壶都更接近目标点P的冰壶都可以得1分。

比赛最多进行10局。

双方之间的某局比赛结束后,落后一方可以弃权。

此时,比赛不再进行下去。

已知每一局结束时,双方的每个冰壶离目标点P的距离,以及正整数r,请你写一个程序判断两队之间每一局比赛的得分,以及总得分。

【输入格式】第一行只有一个正整数r。

以下有若干行(不超过20行),除了最后一行外,每一行有8个正整数(互相之间以一个空格分隔)。

第2行的第j个数表示第1局比赛结束时,甲方的第j个冰壶距离目标点P的距离;第3行的第j个数表示第1局比赛结束时,乙方的第j个冰壶距离目标点P的距离;第4行的第j个数表示第2局比赛结束时,甲方的第j个冰壶距离目标点P的距离;第5行的第j个数表示第2局比赛结束时,乙方的第j个冰壶距离目标点P的距离;… …第2k行的第j个数表示第k局比赛结束时,甲方的第j个冰壶距离目标点P的距离;第2k+1行的第j个数表示第k局比赛结束时,乙方的第j个冰壶距离目标点P的距离;如果有一方中途弃权,则最后一行(偶数行)只有一个整数-1,表示此时发生弃权情况。

【输出格式】有若干行,每行有二个整数,中间以一个冒号分隔,表示每一局比赛甲乙双方的比分(甲得分在前);最后一行有二个整数,中间以一个冒号分隔,表示甲乙双方比赛的最终得分(甲【数据限制】70%的数据,双方均不弃权,比赛进行10局。

100%的数据,每只冰壶距离目标点P的距离不超过100。

2.分数统计(count.pas/c/cpp)【问题描述】学校为了控制作业量,实施“轻负担,高质量”的有效教学,对所有在校学生的作业量情况进行了调查。

NOIP普及组复赛试题

NOIP普及组复赛试题

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普及组复赛答案

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米高度自由下落,落地后反弹起,又落地,又弹起,??。

每次弹起的高度都是上一次高度的一半。

noip普及组复赛模拟试题14(附答案)

noip普及组复赛模拟试题14(附答案)

解的个数(count)给定一个正整数K,问有多少和正整数X,Y满足X>=Y且1/K=1/X+1/Y,将所有解按X降序输出。

输入第一行一个数T,表示数据组数以下T行,每行一个数K输出T部分,每部分第一行一个数K,以下一次按X降序输出所有解,个数见样例,注意=+两边都有空格。

样例输入2212样例输出21/2 = 1/6 + 1/31/2 = 1/4 + 1/481/12 = 1/156 + 1/131/12 = 1/84 + 1/141/12 = 1/60 + 1/151/12 = 1/48 + 1/161/12 = 1/36 + 1/181/12 = 1/30 + 1/201/12 = 1/28 + 1/211/12 = 1/24 + 1/24数据规模30% K<=20100% K<=10000,T<=10标程:var t,i,j,l,n,k:integer;a:array[1..20] of integer;b,c:array[1..10000] of longint;procedure shou(n:integer);var k,s:longint;begink:=n+1;s:=n*2;l:=0;for i:=k to s dobeginif n*i mod (i-n)=0 thenbegininc(l);b[l]:=(n*i) div (i-n);c[l]:=i;end;end;end;beginassign(input,'count.in');reset(input);assign(output,'count.out'); rewrite(output);readln(t);for i:=1 to t doreadln(a[i]);for k:=1 to t dobeginshou(a[k]);writeln(l);for j:=1 to l dowriteln(1,'/',a[k],' ','=',' ',1,'/',b[j],' ','+',' ',1,'/',c[j]);end;close(input);close(output);end.输入341532输出31/4 = 1/20 + 1/51/4 = 1/12 + 1/61/4 = 1/8 + 1/851/15 = 1/240 + 1/161/15 = 1/90 + 1/181/15 = 1/60 + 1/201/15 = 1/40 + 1/241/15 = 1/30 + 1/3061/32 = 1/1056 + 1/331/32 = 1/544 + 1/341/32 = 1/288 + 1/361/32 = 1/160 + 1/401/32 = 1/96 + 1/481/32 = 1/64 + 1/64不等数列(num.cpp/c/pas)【题目描述】将1到n任意排列,然后在排列的每两个数之间根据他们的大小关系插入“>”和“<”。

NOIP1997普及组初赛试题及答案

NOIP1997普及组初赛试题及答案

第三届全国青少年信息学(计算机)奥林匹克分区联赛初赛试题(初中组)(PASCAL 语言竞赛用时:2小时)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、基础部分:<1> 我国先后自行研制成功“银河”系列的巨型计算机,其中:“银河”于1983年问世,其运算速度为每秒___________次;“银河Ⅱ”于1992年诞生,其运算速度为每秒__________次;“银河Ⅲ”于1997年通过国家鉴定,其运算速度为每秒__________次。

<2> 下列软件均属于操作系统的是:___________________A. WPS 与PC DOSB. WINDOWS 与MS DOSC. WORD 与WINDOWSD. FOXBASE 与OS/2<3> 在MS DOS 的根目录中,有如下文件:TIME.EXE TIME.BAT试问:C:\>TIME < 回车> 执行的是什么命令?<4> 设数组A[10..100,20..100] 以行优先的方式顺序存储,每个元素占4个字节,且已知A[10,20]的地址为1000,则A[50,90]的地址是。

<5> 下面是一个求:1/1+1/2+2/3+3/5+5/8+8/13+13/21+21/32…前20项的和的程序段,试将程序补充完整:S:=0 ;A:=1 ; B:=1 ;FOR K:=1 TO 10 DOBEGINS:=____①;A:= _ ②____;S:= __ _③;B:= _ ④;END;WRITELN(S);<6> 一个汉字的机内码目前通常用二个字节来表示:第一个字节是区位码的区号加(160)10;第二个字节是区位码的位码加(160)10。

已知:汉字“却”的区位码是4020,试写出机内码两个字节的二进制的代码:<7> 已知ASCII码表中的大写字母后有6个其它字符,接着便是小写字母。

NOIP1997普及组复赛试题

NOIP1997普及组复赛试题

第三届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题(初中组 竞赛用时:3小时)1. 设有一个n*m 方格的棋盘(1≤m,n ≤100)。

(30%)求出该棋盘中包含多少个正方形、多少个长方形(不包括正方形)。

例如:当n=2,m=3时正方形的个数有8个;即边长为1的正方形有6个; 边长为2的正方形有2个。

长方形的个数有10个;即2*1的长方形有41*2的长方形有33*1的长方形有2个;3*2的长方形有1个。

程序要求:输入:n和m 输出:正方形的个数与长方形的个数如上例:输入:2 3 输出:8,102.将1,2,······,9共9个数排成下列形态的三角形。

(30%)ab cd ef g h i其中:a~i分别表示1,2,······,9中的一个数字,并要求同时满足下列条件:(1)a<f<i;(2)b<d, g<h, c<e(3)a+b+d+f=f+g+h+i=i+e+c+a=P程序要求:根据输入的边长之和P输出所有满足上述条件的三角形的个数以及其中的一种方案。

3.设有一个N *M (l ≤ N ≤50, l ≤ M ≤ 50)的街道(如下图):(40%)规定行人从A(1,1)出发,在街道上只能向东或北方向行走。

如下为N =3,M=3的街道图,从A 出发到达B 共有6条可供行走的路径:A6 A7 B (N ,M ) A3 A4 A5南东 5 4 321 西 12345678 A (1,1) 1.A-A1-A2-A5-B 2. A-A1-A4-A5-B3. A-A1-A4-A7-B4. A-A3-A4-A5-B5. A-A3-A4-A7-B6. A-A3-A6-A7-BA A1 A2若在N*M的街道中,设置一个矩形障碍区域(包括围住该区域的街道)不让行人通行,如图中用“*”表示的部分。

noip初赛试题普及组及答案

noip初赛试题普及组及答案

noip初赛试题普及组及答案一、选择题(每题5分,共20分)1. 在计算机中,用来表示存储容量的基本单位是()。

A. 字节B. 字C. 位D. 字长答案:A2. 下列关于算法复杂度的描述,正确的是()。

A. 算法复杂度与程序代码的长短有关B. 算法复杂度与程序的运行时间有关C. 算法复杂度与程序运行的输入数据有关D. 算法复杂度与程序运行的机器性能有关答案:C3. 在编程中,若要实现一个循环,直到满足某个条件才停止,应使用()。

A. while循环B. for循环C. do-while循环D. switch语句答案:A4. 在C++中,下列哪个关键字用于定义一个类()。

A. structB. classC. interface答案:B二、填空题(每题5分,共20分)1. 在计算机科学中,数据结构通常分为两大类:线性结构和________。

答案:非线性结构2. 一个完整的程序设计语言包括语法规则和________规则。

答案:语义3. 在计算机中,用二进制表示的数值中,最小的非零数是________。

答案:14. 在C++中,用于定义一个私有成员的关键字是________。

答案:private三、编程题(每题30分,共60分)1. 编写一个程序,计算并输出100以内所有偶数的和。

```c++#include <iostream>using namespace std;int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}cout << "Sum of all even numbers within 100 is: " << sumreturn 0;}```2. 编写一个程序,实现一个简单的计算器,能够进行加、减、乘、除四则运算。

NOIP历年复赛提高组试题

NOIP历年复赛提高组试题

全国信息学奥林匹克分区联赛(NOIP)复赛提高组试题第一届全国信息学奥林匹克分区联赛(NOIP1995)复赛试题(提高组竞赛用时:3.5小时)1、编码问题设有一个数组A:ARRAY[0..N-1]OFINTEGER;数组中存放的元素为0~N-1之间的整数,且A[i]≠A[j](当i≠j时)。

例如:N=6时,有:A=(4,3,0,5,1,2)此时,数组A的编码定义如下:A[0]的编码为0;A[i]的编码为:在A[0],A[1],…,A[i-1]中比A[i]的值小的个数(i=1,2,…,N-1)∴上面数组A的编码为:B=(0,0,0,3,1,2)程序要求解决以下问题:①给出数组A后,求出其编码。

②给出数组A的编码后,求出A中的原数据。

2、灯的排列问题设在一排上有N个格子(N≤20),若在格子中放置有不同颜色的灯,每种灯的个数记为N1,N2,……N k(k表示不同颜色灯的个数)。

放灯时要遵守下列规则:①同一种颜色的灯不能分开;②不同颜色的灯之间至少要有一个空位置。

例如:N=8(格子数);R=2(红灯数);B=3(蓝灯数),放置的方法有:R-B顺序B-R顺序放置的方法总数为12种。

数据输入的方式为:NP1(颜色,为一个字母)N1(灯的数量)P2 N2……Q(结束标记,Q本身不是灯的颜色)程序要求:求出一种顺序的放置(排列)方案及放置(排列)方案总数。

3、积木块上的数字设有一个四层的积木块,1~4层积木块的数量依次为:5,6,7,8,如下图所示放置:其中,给出第三层与第四层所标示的数字,并已知第三层的数据是由第四层的数据计算出来的。

计算的方法是:第三层的某个数据A是由第四层相邻的两个数据B,C经过某种计算后产生的:计算所用到的计算符为:+,-,⨯,且无优先级之分(自左向右计算),运算符最多为2个。

如:3+4⨯5=35 5⨯4+3=23可以看出,上图中的第三层的数据是由第四层的数据用以下计算公式计算出来的:A=B⨯C+B也就是:8=2⨯3+2,15=3⨯4+3,……14=2⨯6+2程序要求:给出第四层与第三层的数据后,将第一、二层的每块积木标上相应的数据,并输出整个完整的积木图及计算公式。

noip普及组复赛模拟试题16(附答案)

noip普及组复赛模拟试题16(附答案)

noip普及组复赛模拟试题16(附答案)【问题描述】任何一个整数N都能表示成另外两个整数a和b的平方差吗?如果能,那么这个数N就叫做Couple number。

你的工作就是判断一个数N是不是Couple number。

【输入文件】仅一行,两个长整型范围内的整数n1和n2,之间用1个空格隔开。

【输入文件】输出在n1到n2范围内有多少个Couple number。

注意:包括n1和n2两个数,且n1<="" <="10" n1="" p=""> 【输入样例】1 10【输出样例】7Couple numbera*a-b*b=n <=> (a+b)(a-b)=n如果n是奇数,则a,b一奇一偶,而n=1*n,所以,令a=(n+1)/2,b=(n-1)/2,即n一定是Couple number。

如果n是偶数,则a,b同奇同偶,此时如果n mod 4=2,则n一定是拆成一奇一偶的和,即x+y和x-y的值一定是一奇一偶,这种情况下x,y肯定无整数解,所以此时的n一定不是Couple number;如果n mod 4=0,则a=n/4+1,b=n/4-1,即n一定是Couple number。

参考程序:var x,y,i,ans:longint;begin assign(input,'couple.in'); reset(input);readln(x,y); close(input);ans:=0;for i:=x to y dobeginif odd(i) then inc(ans)else if i mod 4=0 then inc(ans);end;assign(output,'couple.out');rewrite(output);writeln(ans);close(output);end.10 90(60)5000 12000(5251)100000 200000(75001)对于某个数n,,我们这次的工作仅是求出小于n且和n互质的数的个数,,比如n=10时 1,3,7,9均与10互质//互质的定义是gcd(a,b)=1输入格式 InputFormat输入只有一行,一个数N(1<=N<=2,000,000,000)。

noip普及组复赛模拟试题11答案

noip普及组复赛模拟试题11答案

机器人深海探测是一个极富挑战性的高技术科学研究项目。

小雪参加了这一项目的研究工作。

潜水机器人可以携带规定有限的能量。

在深海探测过程中,机器人需要消耗一定的能量,但可以在机器人之间通过接触传递能量。

用多个潜水机器人接力潜水可以极大地提高潜水机器人的潜水深度。

现给定2个潜水机器人。

第1个潜水机器人最多可以携带x1单位的能量,每下潜1米需要消耗能量y1单位。

第2个潜水机器人最多可以携带x2单位的能量,每下潜1米需要消耗能量y2单位。

开始时2个潜水机器人均处于同一海平面高度为0,并且每个机器人初始时都携带了规定最多的能量。

计算用这2个机器人进行不返回的接力深海探测可下潜的最大深度。

输入:每行一个整数,依次为x1,x2,y1,y2;输出: 这2个登山机器人可下潜的最大深度,精确到小数点后2位。

例如输入:50500.010.01输出:7500.00var x1,x2,y1,y2,x,y,s:real;beginreadln(x1); readln(x2); readln(y1); readln(y2);s:=0;if (x1/y1)>(x2/y2) thenbeginx:=x1;y:=y1;endelse beginx:=x2;y:=y2;end;repeatx1:=x1-y1;x2:=x2-y2;s:=s+1;until x1+x2<=x;s:=s+x/y;writeln(s:0:2);readln;end.输入:40 0.02↙50 0.01↙输出:6334.00输入25350.150.25输出254.671233211.55.1输出131.002035年,智能机器人在各行各业中的应用已经十分普遍了,毕竟它做事时的精度与力量比一个普通人是强多了。

王涛的运输队里就有一个,是用来装卸货物的。

这天,他们的任务是要把N(2 <= N <= 50 )根废旧的条形钢材运送到钢铁厂重新冶炼。

这些钢材长短不同(有些还特别的长),为了便于运输,只好把它们切割成小段。

信奥赛普及组复赛试卷

信奥赛普及组复赛试卷

信奥赛普及组复赛试卷一、单项选择题(每题2分,共30分)1. 在C++语言中,以下哪个符号用于定义一个整数变量?()A. #B. $.C. int.D. char.2. 一个完整的C++程序必须有()。

A. 预处理命令。

B. 输入输出语句。

C. 主函数。

D. 函数调用。

3. 在C++中,若定义了 `int a = 5;`,表达式 `a++` 的值为()。

A. 5.B. 6.C. 7.D. 8.4. 若有数组定义 `int arr[5] = {1, 2, 3, 4, 5};`,则访问数组元素`arr[3]` 的值为()。

A. 1.B. 2.C. 3.D. 4.5. 在C++中,用于从标准输入读取一个整数的函数是()。

A. scanf.B. cin.C. get.D. read.6. 以下关于函数的说法正确的是()。

A. 函数可以没有返回值。

B. 函数只能有一个参数。

C. 函数内部不能定义变量。

D. 函数名不能以数字开头。

7. 在C++中,若有函数声明 `void fun(int x);`,则函数 `fun` 的参数传递方式是()。

A. 值传递。

B. 地址传递。

C. 引用传递。

D. 指针传递。

8. 若要计算1到100的整数和,以下哪种循环结构最合适?()A. for循环。

B. while循环。

C. do - while循环。

D. 任意一种循环都可以。

9. 在C++中,以下关于字符串的操作正确的是()。

A. 可以直接用 `==` 比较两个字符串是否相等。

B. 字符串是基本数据类型。

C. 可以用 `strcpy` 函数复制字符串。

D. 字符串的长度可以用 `sizeof` 直接获取。

10. 若有结构体定义:cpp.struct Student {int id;char name[20];};定义一个结构体变量 `Student stu;` 后,要给成员变量 `id` 赋值为1001,以下正确的是()。

A. stu - > id = 1001;B. stu.id = 1001;C. (*stu).id = 1001;D. 以上都不对。

noip普及组复赛入门训练8

noip普及组复赛入门训练8

PASCAL复习91.二进制中的1(文件名YDWZ.PAS)【问题描述】给定一个正整数N,请找出N转化为二进制后,其中所有1的位置。

二进制的最低位(最右侧)为第0位。

Input输入中包含一个正整数N ( 1 <= N <= 1000000)Output输出N转换为二进制后,所有1的位置,每两个位置中间用一个空格隔开【样例输入】13【样例输出】0 2 32. 字符翻译(文件名ZFFY.PAS)【问题描述】输入一个以“@”结束的字符串,从左至右翻译。

若下一个字符是数字n(0<n≤9),表示后一个字符重复n+1次,不论后一个字符是否为数字;若下一个字符非数字,则表示自己。

例如“A2B5E34FG0ZYWPQ59R@”可翻译成“ABBBEEEEEE4444FGZYWPQ999999R@”。

【输入】为需要输入的字符串(串长≤255)【输出】为翻译后的字符串。

【样例输入】A2B5E34FG0ZYWPQ59R@【样例输出】ABBBEEEEEE4444FGZYWPQ999999R@3.枪声次数(文件名QSCS.PAS)问题描述:小明和小李同时参加了射击比赛,比赛规则是这样的,每次两人同时射击,每个人有S枚子弹进行射击,第1秒两人同时打出第一枚子弹,以后的s-1子弹可以自己根据一定的间隔时间打出,设小明后面的子弹每隔t1秒打出一枚子弹,小李后面的子弹每隔t2秒打出一枚子弹,如t1=2时,则后面子弹打出的时刻分别为4,7,10,13,…。

如果某一时刻两人同时打出子弹,则只能听到一次响声,现在要你统计这两个人的比赛中共能听到几次枪声。

数据输入:共有三行,第一行表示S的值(S<100),第二行是正整数t1的值(t1<=20),第三行是正整数t2的值(t2<=20)。

数据输出:只有一个数,表示能听到的枪声的次数。

输入输出样例输入523输出84. 字母序列(文件名ZMXL.PAS)用1表示S(Smile),2表示C(Cry),3表示H(Happy)。

NOIP普及组复赛考试

NOIP普及组复赛考试

NOIP普及组复赛考试————————————————————————————————作者:————————————————————————————————日期:P1909 买铅笔题目描述P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。

她发现商店一共有3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。

为了公平起见,P老师决定只买同一种包装的铅笔。

商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过n支铅笔才够给小朋友们发礼物。

现在P老师想知道,在商店每种包装的数量都足够的情况下,要买够至少n支铅笔*最少*需要花费多少钱。

输入输出格式输入格式:输入的第一行包含一个正整数n,表示需要的铅笔数量。

接下来三行,每行用两个正整数描述一种包装的铅笔:其中第一个整数表示这种包装内铅笔的数量,第二个整数表示这种包装的价格。

保证所有的7个数都是不超过10000的正整数。

输出格式:输出一行一个整数,表示P老师最少需要花费的钱。

输入输出样例输入样例#1:572 250 3030 27输出样例#1:54输入样例#2:9998128 233128 2333128 666输出样例#2:18407输入样例#3:9999101 11111 99991111 9999输出样例#3:89991说明铅笔的三种包装分别是:•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。

1995-2008 历届NOIP试题及详解

1995-2008 历届NOIP试题及详解

N1=1
Q
排列方案: R
⑤ 排数列据总输数入=:6 N=6 R
P1=R
N1=2 R
P2=Y Q
N2=1 R
R
⑥排数列据方输案入::N=R12 R
Y
R
排列总数=12 P1=RR R N1= 3 Y

P2=RB R N2=2
Y
P3=Y R N3R=1
Y
Q
RR
Y
排列方案:
RR
<8> 本题排共列40总分数(:12%+14%R+14R%) R
BBB
RR
N
P1(颜色,为一个字母) N1(灯的数量)
P2
N2
……
Q(结束标记,Q 本身不是灯的颜色)
程序要求:求出一种顺序的排列方案及排列总数。
<3> 设有一个四层的积木块,1~4 层积木块的数量依次为:5,6,7,8
如下图所示放置:
8 15 8 5 16 9 14
23414326 其中,给出第三层与第四层所标示的数字,并已知第三层的数据是由第四层的数据计算出
输出: A=(3,2,1,0,4,5,6)
<5> 本题共 30 分(10%+10%+10%)
① 数据输入: N=6
P1=R
N1=1
Q
排列方案: R ② 排数列据总输数入=:6 N=6 R
P1=R
NR1=2
P2=Y
N2=1 R
Q
R
排列方案: R ③ 排数列据总输数入=:12N=1R2
P1=RR
R
Y
R R N1= 3
(10)10=1(1 110010)9 2 8 7 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题
(初中组竞赛用时:3小时)
1.设有一个n*m方格的棋盘(1≤m,n≤100)。

(30%)
求出该棋盘中包含多少个正方形、多少个长方形(不包括正方形)。

例如:当n=2,m=3时
正方形的个数有8个;即边长为1的正方形有6个;
边长为2的正方形有2个。

长方形的个数有10个;
即2*1的长方形有4个;
1*2的长方形有3个;
3*1的长方形有2个;
3*2的长方形有1个。

程序要求:输入:n和m输出:正方形的个数与长方形的个数
如上例:输入:23输出:8,10
2.将1,2,······,9共9个数排成下列形态的三角形。

(30%)
a
b c
d e
f g h i
其中:a~i分别表示1,2,······,9中的一个数字,并要求同时满足下列条件:(1)a<f<i;
(2)b<d,g<h,c<e
(3)a+b+d+f=f+g+h+i=i+e+c+a=P
程序要求:
根据输入的边长之和P
输出所有满足上述条件的三角形的个数以及其中的一种方案。

3.设有一个N *M (l ≤N ≤50,l ≤M ≤50)的街道(如下图):(40%)
规定行人从A(1,1)出发,在街道上只能向东或北方向行走。

如下为N =3,M=3的街道图,从A 出发到达B 共有6条可供行走的路径:A6
A7B (N ,M )A3
A4A5A A1A2若在N *M 的街道中,设置一个矩形障碍区域(包括围住该区域的街道)不让行人通行,如图中用“*”表示的部分。

此矩形障碍区域用2对顶点坐标给出,前图中的2对顶点坐标为:(2,2),(8,4),此时从A 出发到达B 的路径仅有两条。

程序要求:
任务一:给出N ,M 后,求出所有从A 出发到达B 的路径的条数。

任务二:给出N ,M ,同时再给出此街道中的矩形障碍区域的2对顶点坐标(X1,y1),(X2,
Y2),然后求出此种情况下所有从A 出发到达B 的路径的条数。

南************东北54321西123456789A (1,1)
1.A-A1-A2-A5-B
2.A-A1-A4-A5-B
3.A-A1-A4-A7-B
4.A-A3-A4-A5-B
5.A-A3-A4-A7-B
6.A-A3-A6-A7-B
B (9,5)。

相关文档
最新文档