noip普及组复赛模拟试题29
- 格式:doc
- 大小:36.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,输入可能包含大、小写英文字母、数字字符、空格和行末换行符。
noip普及组复赛模拟试题26(答案)1.数字反转(/c/pas)【问题描述】给定一个整数,请将该数各个位上数字反转得到一个新数。
新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。
【输入】输入文件名为。
输入共 1 行,一个整数N。
【输出】输出文件名为。
输出共 1 行,一个整数,表示反转后的新数。
【输入输出样例 1】 123 321【输入输出样例 2】 -380 -83【数据范围】-1,000,000,000 ≤ N≤ 1,000,000,000。
vars3,s1,s2:string; n,i:integer; beginassign(input,'');reset(input);assign(output,'');rewrite(output); read(s1); n:=length(s1); if s1[1]='-' then begin s2:='-';for i:=1 to n-1 do s1[i]:=s1[i+1]; delete(s1,n,1); end;n:=length(s1); for i:=1 to n do s3:=s3+s1[n-i+1]; i:=1;while(s3[i]='0')and(length(s3)>1) do delete(s3,1,1); write(s2+s3);close(input);close(output); end.2.统计单词数(/c/pas)【问题描述】一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。
现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。
注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同,如果给定单词仅是文章中某一单词的一部分则不算匹配。
NOIP2006复赛模拟题(普及组水平)(时间:3小时)注意事项:1. 严格按照题目所要求的格式进行输入、输出。
2. 题目测试数据有严格的时间,超时不得分。
所有题目的时限均为1秒。
3. 输入文件格式不用判错。
程序文件名、输入输出文件名等请严格按照要求。
4. 本次比赛共4题。
5. 同时提交pas、exe文件,请使用freepascal编译。
编译后的exe请留意是否能正确运行。
为方便测试,所有pas、exe均存在一个文件夹中,该文件夹用你的中文名字命名,然后把整个文件夹压缩为一个rar文件(该文件也是用你的中文名字命名)提交到老师邮箱:*************。
第一题位置(posi.pas)求数A在数组B中的位置.输入及格式:第一行是数A ,一维数组B的元素个数N(N<=105),中间用空格隔开。
第二行是已按升序排列的一维数组B (-32768<B[i],A<32767),数间用空格隔开。
输出及格式:数A在B中的下标。
B中如果存在多个A,则输出下标最小的一个。
如果B 中不存在A,则输出“-1”输入样例1:3 61 3 3 4 5 10输出样例1:2输入样例2:1 33 4 5输出样例2:-1第二题面积(area.pas)一幅图由0和*组成,编程计算由“*”号所围成的图形的面积。
面积是指*号所围成的闭合曲线中0的数目。
输入:由0,*组成的图输出:面积数输入样例:0000000000000**000000*00*0000*000*00000***000000000000输出样例:5输入样例2:000000000000*000*0*0输出样例2:第三题阶乘位数(jc.pas)问题描述:在很多软件中需要用到较大的整数。
比如一些软件将大数用于数据安全传送的密匙或者密码编译等等。
在这个问题中,你要根据给你的整数,算出这个数的阶乘的位数。
输入格式:输入文件包含若干行整数。
第一行为n,表示有n组数据,接下来是n行,每行一个整数m(1≤m≤107)。
1. 辉辉、姗姗和佳佳是好朋友,他们一起参加了在湖南长沙长郡中学举办的第二十一届全国青少年信息学奥林匹克竞赛(NOI2004)。
他们很早就来到了长沙,可是报名还没有开始。
怎么办呢?他们决定分头出去玩一天,晚上回到宿舍以后给大家说说自己这一天做了什么有意义的事情。
你一定想不到辉辉干嘛去了——他睡了一天。
他想:“比赛前几天老是写程序到深夜,头晕晕的……没关系,好好睡一觉,然后我会精神抖擞。
醒了之后,我要做有意义的事情。
”这一睡可不得了,辉辉从早上a点b分c秒一直睡到了下午d点e分f秒。
他睡了多少秒钟呢?六个非负整数a, b, c, d, e, f(1<=a, d<=11, 0<=b, c, e, f<=59)。
例如,a=6, b=5, c=4, d=3, e=2, f=1表示辉辉从06:05:04睡到15:02:01。
【样例输入】6 5 4 3 2 1【样例输出】322172. 将a,b,c,……n个字符,按顺时针方向排成一圈,然后从任意位置开始按顺时针方向连续取k个字符组成一个k位字符串。
(k<n)例如:n=3 k=2 按顺时针方向排成如下一圈:ac b此时,可组成:ab,bc,ca。
当给出n,k后,输出n个k位字符串输入:n k 输出:n个k位字符串输入输出样例:输入:5 4 输出:abcdbcdecdeadeabeabc3. 问题描述:计算机软件版本通常被用来区分某种软件在不同时间的发布。
大部分软件版本号都是用“.”分隔的非负数的序列。
对两个不同的版本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)在这个问题里,你要对给定的一组版本号,按照上面的定义从旧到新排序。
全国信息学奥林匹克联赛(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 之间。
NOIP2015复赛普及组试题————————————————————————————————作者:————————————————————————————————日期:CCF 全国信息学奥林匹克联赛(NOIP2015)复赛普及组(请选手务必仔细阅读本页内容)一.题目概况金币扫雷游戏求和推销员中文题目名称coin mine sum salesman 英文题目与子目录名coin mine sum salesman 可执行文件名coin.in mine.in sum.in salesman.in 输入文件名coin.out mine.out sum.out s alesman.out 输出文件名每个测试1 秒 1 秒 1 秒 1 秒点时限第3 页共14 页【问题描述】 第 4 页共 14 页测试点数目 10 10 10 10每个测试点分值 10 10 10 10附加样例文件 有有 有 有结果比较方式全文比较(过滤行末空格及文末回车)题目类型 传统 传统 传统 传统 运行内存上限128M128M128M128M二.提交源程序文件名对于 C++语言coin.cpp mine.cpp sum.cpp salesman.cpp【问题描述】 第 5 页共 14 页对于 C 语言 coin.c mine.c sum.c salesman.c对于 pascal 语言coin.pas mine.pas sum.pas salesman.pas三.编译命令(不包含任何优化开关)对于 C++语言 g++ -o coin coin.cpp -lm g++ -o mine mine.cpp -lm g++ -o sum sum.cpp -lm g++ -o salesmansalesman.cpp-lm对于 C 语言gcc -o coin coin.c -lm gcc -omine mine.c -lm gcc -o sum sum.c -lm gcc -o salesmansalesman.c -lm 对于pascal 语言fpc coin.pas fpc mine.pas fpc sum.pas fpc salesman.pas【问题描述】注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。
一、新龟兔赛跑(文件名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普及组复赛答案【篇一: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米高度自由下落,落地后反弹起,又落地,又弹起,??。
每次弹起的高度都是上一次高度的一半。
第一题:最大字符(zdzf.c/cpp)读入一串由大写、小写、数字组成的字符(<256位),输出ASCII表值最大的那个字符出来。
例如:读入:abeADEf3输出:e第二题:盖房子(gfz.c/cpp)题目正文【问题描述】永恒の灵魂最近得到了面积为n*m的一大块土地(高兴ING^_^),他想在这块土地上建造一所房子,这个房子必须是正方形的。
但是,这块土地并非十全十美,上面有很多不平坦的地方(也可以叫瑕疵)。
这些瑕疵十分恶心,以至于根本不能在上面盖一砖一瓦。
他希望找到一块最大的正方形无瑕疵土地来盖房子。
【输入格式】输入文件第一行为两个整数n,m(1<=n,m<=1000),接下来n行,每行m个数字,用空格隔开。
0表示该块土地有瑕疵,1表示该块土地完好。
【输出格式】一个整数,最大正方形的边长。
【输入样例】4 40 1 1 11 1 1 00 1 1 01 1 0 1【输出样例】2第三题:IQ(iq.c/cpp)题目正文【问题描述】根据世界某权威学会的一项调查,学信息学的学生IQ非常高。
举个最好的例子,如果我们把学信息学的一些学生调去学数学,那么两个竞赛的学生平均IQ都会提升!!现在给出一群数学竞赛全体学生的IQ和信息学竞赛全体学生IQ,问最多能把几个学信息学的学生调去学数学,而两个竞赛的学生平均IQ都有提升呢?每次只调一个学生,而且每次调配,两个竞赛的学生平均IQ都要提升。
【输入格式】输入数据的第一行一个正整数N,代表数学竞赛班学生的数目。
N <= 100接下来一行,有N个正整数,代表每个数学学生的IQ(1 到 200 之间)。
然后一个整数M,代表信息学竞赛班学生数目 M <= 100接下来一行,有M一个正整数,代表每个信息学竞赛班学生的IQ(1 到 200 之间)输入数据保证信息学学生平均IQ高于数学学生。
输出格式:输出只有一行,一个正整数,代表能从信息学调去学数学的学生的个数。
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 枚金。
1.质因数分解(prime.cpp/c/pas)【问题描述】已知正整数n 是两个不同的质数的乘积,试求出较大的那个质数。
【输入】输入文件名为prime.in。
输入只有一行,包含一个正整数n。
【输出】输出文件名为prime.out。
输出只有一行,包含一个正整数p,即较大的那个质数。
【输入输出样例】prime.in prime.out21 7【数据范围】对于60%的数据,6 ≤ n ≤ 1000。
对于100%的数据,6 ≤ n ≤ 2*109。
var i,j,n:longint;f:boolean;function sushu(i:longint):boolean;beginf:=true;for j:=2 to trunc(i/2) doif i mod j=0 then begin f:=false; sushu:=false; exit; end;if f then sushu:=true;end;beginassign(input,'prime.in');assign(output,'prime.out');reset(input);rewrite(output);readln(n);for i:=trunc(n/2) downto 2 doif (n mod i=0) and (sushu(i)) then beginwriteln(i);break;end;close(input);close(output);end.输入998 输出499 输入1999520027 输出99991设有一个数组A:array [0..N-1] of integer;存放的元素为0~N-1(1<N<=10)之间的整数,且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)要求编程解决以下问题:(1)给出数组A后,求出其编码;(2)给出数组A的编码后,求出A中的原数据程序样例:例一:输入:Stat=1 {表示要解决的第(1)问题}N=8 {输入8个数}A=1 0 3 2 5 6 7 4输出:B=0 0 2 2 4 5 6 4例二:输入:Stat=2 {表示要解决的第(2)问题}N=7B=0 1 0 0 4 5 6输出:A=2 3 1 0 4 5 6[解]第1个问题的解法:用穷举搜索法。
NOIP2016普及组复赛模拟赛试卷普及组(请选手务必仔细阅读本页内容)二.提交源程序文件名三.编译命令(不包含任何优化开关)注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。
3、统一评测时采用的机器配置为:CPU P4 3.0GHz,内存 2G,上述时限以此配置为准。
4、特别提醒:评测在Windows下进行,评测软件为cena8.0。
River Hopscotch(jump.pas/c/cpp)【问题描述】每年,奶牛们都举办一种特殊的跳房子游戏,在这个游戏中,大家小心翼翼地在河中的岩石上跳。
这个游戏在一条笔直的河中进行,以一块岩石表示开始,以另一块距离起点L单位长度的岩石表示结束。
在这两块岩石中间还有N 块岩石,每块的位置距离起点是 Di 个单位长度。
玩这个游戏的时候,每头牛从开始的那块岩石想办法要跳到表示结束的那块岩石上。
中间只能在从某块岩石跳跃到另一块岩石,反复的这样跳。
当然,不够敏捷的牛永远跳不到终点,最终只能落入河中。
农民 John 为他的牛感到自豪,每年都观看比赛。
随着时间的推移,他对于那些胆小的只能跳过很短距离的牛感到厌烦。
为了那些牛,其他农民会把岩石的间距弄得很小。
他计划移除一些岩石,从而增加奶牛在跳跃时需要的最短距离。
他不能移除开始和结束的两块岩石。
但是除此之外他可以移除 M 块岩石。
FJ 希望知道他能够增加多少最短跳跃距离。
求当他移除了M块岩石后,奶牛从开始跳到结束的岩石,每次跳跃的最短距离至多可以增加到多少。
【输入格式】第1行: 三个用空格分开的整数,分别是 L, N 和 M。
第2..N+1行: 每行一个整数,表示中间N块岩石的位置,没有两块岩石处于同一位置。
【输出格式】输出共一行一个整数,表示移除某M块岩石后,相邻岩石间距最小值的最大可能情况。
【输入样例】25 5 2214112117【输出样例】4【输入说明】中间有 5 块岩石,坐标 2, 11, 14, 17 和 21。
【基础】班委确定【试题描述】经过紧张而激烈的选拔考试,编程班终于浮出水面,一共有k位同学幸运的入选,这k位同学个个可都是精英,才华横溢,思维敏捷。
让谁做班长?让谁做学习委员?让谁做团委书记呢……?这可让班主任老师伤透了脑筋。
个个都优秀,个个都能干,实在是没有办法了。
抓阄吧!这个抓阄可不是普通的抓阄,老师让这k位同学围成一圈从一号位置开始顺时针报数报到m这个人就出圈(啊?猴子选大王啊!把我们当猴子啦?Of course not),出圈后就反向逆时针从下一个开始报数,报到n再出圈,然后再反向顺时针报到m出圈,反向逆时针报到n出圈……圈里的人越来越少,当还剩下5个人的时候那么这5个人就是编程班的班委。
Star很想当班委,为了能够当上班委,他想请你帮忙确定哪些位置是班委的位置。
【输入描述】一行:三个整数k,m和n【输出描述】一行:5个数,分别为5个班委位置的号码(号码从大到小排列)。
两个号码之间用一个空格隔开,最后一个号码没有空格【输入样例】 10 3 2【输出样例】 10 9 8 6 4【解题提示】样例说明:出圈顺序为:3 1 5 2 7 剩下4 6 8 9 10数据规模:10%的数据 k,n,m <= 1540%的数据 k,n,m <= 20060%的数据 k,n,m <= 50090%的数据 k,n,m <= 1000100%的数据 k<=1000 n,m <= 100000【试题来源】常州长训班测试var k,i,h,s,w:integer;t,z,m,n:int64;f:boolean; a:array[1..1000] of 0..1;b:array[1..5] of integer;begin readln(k,m,n); fillchar(a,sizeof(a),1);f:=true; s:=k; w:=0;while s>5 dobegint:=0;if f=true then begin h:=1;z:=m endelse begin h:=-1;z:=n end;while t<z dobeginw:=w+h; if w<=0 then w:=k+w;w:=w mod k;if w=0 then w:=k;t:=t+a[w];end;a[w]:=0;f:=not f;dec(s);end;t:=1;for i:=1 to k doif a[i]<>0 then begin b[t]:=i; inc(t);end;for i:=5 downto 2 do write(b[i],' ');write(b[1]);end.输入20 5 3 输出18 12 9 3 1输入40 9 5 输出31 25 16 2 1宝石手镯[Kolstad/Cox, 2006]贝茜在珠宝店闲逛时,买到了一个中意的手镯。
281. 小华的寒假作业上,有这样一个趣味填空题:给出用等号连接的两个整数,如“1234=127”。
当然,现在这个等号是不成立的。
题目让你在左边的整数中间某个位置插入一个加号,看有没有可能让等号成立。
以上面的式子为例,如果写成123+4=127,这就可以了。
请你编写一个程序来解决它。
Input 只有那个不相等的式子。
已知,等号两边的整数都不会超过2000000000。
Output 如果存在这样的方案,请输出那个正确的式子。
如果不存在解决方案,请输出“Impossible!”(引号中的部分)。
Sample Input 1234=127Sample Output 123+4=1272. 给若干个字符串,判断该字符串最多重复了几次,比如,给ababab,结果是3,因为ab重复了3次,因为求最多重复了几次,所以结果不是1,在比如abcdabcd 结果是2,abcd结果是1.输入一组字符串,以“。
作为结束标志。
样例输入1aaaaabcd。
样例输出413. 【题目描述】蚊子最近经常做噩梦,然后就会被吓醒。
这可不好。
疯子一直在发愁,然后突然有一天,他发现蚊子其实就是害怕某些事。
如果那些事出现在她的梦里,就会害怕。
我们可以假定那个害怕的事其实是一个字符串。
而她做的梦其实也是一个字符串。
她可以一个晚上一直做梦,所以梦这个字符串会很长,如果其中包含了她所害怕的事情,那么她这天晚上就会害怕。
当然一个害怕的事也可能在这天晚上被她梦到很多遍,当然每个晚上也可能有很多种害怕的事都被梦到。
每个害怕的事都有一定的权值。
而这天晚上如果梦到了某件事,那么这件事所产生的黑暗效果等于这件事的权值乘以这个害怕的事在梦字符串里的开始位置。
如果同样的事梦到了很多遍,那么就重复上面的操作很多遍。
当天晚上的黑暗效果总和等于当天所有害怕的事产生的黑暗效果累加到一起。
现在疯子想知道蚊子这些天来噩梦的黑暗效果总和是多少。
【输入格式】:第1行两个整数N,M代表一共有N天梦和M个害怕的事。
CCF 全国信息学奥林匹克联赛(NOIP2015)复赛普及组(请选手务必仔细阅读本页内容)一.题目概况1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。
3、全国统一评测时采用的机器配置为:CPU AMD Athlon(tm) II x2 240 processor,,内存4G,上述时限以此配置为准。
4、只提供 Linux 格式附加样例文件。
5、特别提醒:评测在当前最新公布的NOI Linux 下进行,各语言的编译器版本以其为准。
1. 金币c/pas)国王将金币作为工资,发放给忠诚的骑士。
第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续 N 天每天收到 N 枚金币后,骑士会在之后的连续 N+1 天里,每天收到 N+1 枚金币。
请计算在前 K 天里,骑士一共获得了多少金币。
【输入格式】输入文件名为。
输入文件只有 1 行,包含一个正整数 K,表示发放金币的天数。
【输出格式】输出文件名为。
输出文件只有 1 行,包含一个正整数,即骑士收到的金币数。
【输入输出样例 1】【输入输出样例 1 说明】骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。
因此一共收到 1+2+2+3+3+3=14 枚金币。
【输入输出样例 2】【数据说明】对于 100%的数据,1 ≤ K ≤ 10,000。
2.扫雷游戏(c/pas)扫雷游戏是一款十分经典的单机小游戏。
在 n 行 m 列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。
玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。
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。
一、从一张长A毫米、宽B毫米的长方形纸片上剪下尽可能大的正方形,如果剩下的部分不是正方形,就在剩下的纸片上再裁下一个尽可能大的正方形,……,求裁剪的第N 个正方形的边长?A、B、N(1≤A,B≤30000,1≤N≤100)用键盘输入。
输入输出样例:输入:A,B,N=9 5 2↙输出:4
输入:A,B,N=6 4 4↙输出:2
二、所谓H数,是指该数除1以外最多只有2,3,5,7四种因子,如630即为H数,而22不是。
要求对键盘输入的自然数N,求出第N个H数。
如N=30,应输出49。
规定要求的H数不超出长整型数的范围。
三、某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。
期末,每个学生都有3门课的成绩:语文、数学、英语。
先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。
任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前5名学生的学号和总分。
注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。
例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分)是:7 279 5 279这两行数据的含义是:总分最高的两个同学的学号依次是7号、5号。
这两名同学的总分都是279(总分等于输入的语文、数学、英语三科成绩之和),但学号为7的学生语文成绩更高一些。
如果你的前两名的输出数据是:5 279 7 279则按输出错误处理,不能得分。
【输入】输入文件scholar.in包含n+1行:第1行为一个正整数n,表示该校参加评选的学生人数。
第2到n+1行,每行有3个用空格隔开的数字,每个数字都在0到100之间。
第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。
每个学生的学号按照输入顺序编号为1~n(恰好是输入数据的行号减1)。
所给的数据都是正确的,不必检验。
【输出】输出文件scholar.out共有5行,每行是两个用空格隔开的正整数, 依次表示前
所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。
面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m*150% (向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。
现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。
【输入】输入文件名为score.in。
第一行,两个整数n,m(5 ≤n ≤5000,3 ≤m ≤n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的志愿者人数。
输入数据保证m*150%向下取整后小于等于n。
第二行到第n+1 行,每行包括两
个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤k ≤9999)和该选手的笔试成绩s(1 ≤s ≤100)。
数据保证选手的报名号各不相同。
【输出】输出文件score.out。
第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。
从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。
【输入输出样例】score.in score.out
6 3 88 5
1000 90 1005 95
3239 88 2390 95
2390 95 1000 90
7231 84 1001 88
1005 95 3239 88
1001 88
【样例说明】m*150% = 3*150% = 4.5,向下取整后为4。
保证4 个人进入面试的分数线为88,但因为88有重分,所以所有成绩大于等于88 的选手都可以进入面试,故最终有5 个人进入面试。
五、警察抓到了n个罪犯,警察根据经验知道他们属于不同的犯罪团伙,却不能判断有多少个团伙,但通过警察的审讯,知道其中的一些罪犯之间相互认识,已知同一犯罪团伙的成员之间直接或间接认识。
有可能一个犯罪团伙只有一个人。
请你根据已知罪犯之间的关系,确定犯罪团伙的数量。
已知罪犯的编号从1至n。
输入:第一行:n(<=1000,罪犯数量),
第二行:m(<5000,关系数量)以下若干行:每行两个数:I 和j,中间一个空格隔开,表示罪犯i和罪犯j相互认识。
输出:一个整数,犯罪团伙的数量。
样例输入:11↙8↙1 2↙4 3↙5 4↙1 3↙5 6↙7 10↙5 10↙8 9 输出:3
说明:共三个犯罪团伙。
六、Bessie正在减肥,所以她规定每天不能吃超过C(10≤C≤35,000)卡路里的食物。
农民John 在戏弄她,在她面前放了B(1≤B≤21) 捅食物。
每桶内都有某个单位卡路里(范围:1..35,000)的食物(不一定相同)。
Bessie 没有自控能力,一旦她开始吃一个桶中的食物,她就一定把这桶食物全部吃完。
Bessie 对于组合数学不大在行。
请确定一个最优组合,使得可以得到最多的卡路里,并且总量不超过C。
例如,总量上限是40卡路里,6桶食物分别含有7,13,17,19, 29和31卡路里的食物。
Bessie可以吃7+31=38卡路里,但是可以获取得更多:7+13+19=39卡路里。
没有更好的组合了。
输入格式:第1行:两个用空格分开的整数:C和B。
第2行: B个用空格分开的整数,分别表示每桶中食物所含的卡路里。
输出格式:一个整数,表示Bessie能获得的最大卡路里,使她不违反减肥的规则。
样例输入输出:eatpuz.in
40 6
7 13 17 19 29 31
eatpuz.out 39。