信息学奥林匹克竞赛复赛试题
CCF全国信息学奥林匹克联赛NOIP普及组复赛试题
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,输入可能包含大、小写英文字母、数字字符、空格和行末换行符。
信息学奥林匹克联赛复赛模拟试题及题解
test01题解1、1、乒乓球比赛(table.cpp)问题描述:一次乒乓球比赛,赛制为单循环赛,每一对选手之间都要打一场五局三胜的比赛,赢得最多比赛局数的人为优胜者。
现在你有一份比赛记录表,记录了每一场比赛的比分,计算出优胜者。
输入格式:第一行包含n(2≤n≤100),比赛的选手数目。
接下来给出一个n*n矩阵A。
矩阵的每一个元素都是0、1、2、3中的一个。
第i行第j列的元素aij是第i个选手在和第j个选手的比赛中赢的局数。
aij和aji(i≠j)正好有一个是3,另外一个小于3。
矩阵的所有对角线元素都是0。
输出格式:int m ain(){int n,i,mmax,imax,j,t,y;fin>>n; mmax=0;imax=-1;for (i=0;i<n;i++){t=0; for (j=0;j<n;j++){ fin>>y; t+=y; }if (t>mmax) { mmax=t;im ax=i;}}fout<<im ax+1<<endl;}2、数字序列(number.cpp)问题描述:在下列的无穷数字序列1121231234123451234561234567123456781234567891234567 89101234567891011123456789101112......中,查找第i个数字。
输入格式:第一行为正整数t(1≤t≤10),表示测试数据组数。
接下来t行,每行一个正整数i(1≤i≤231-1)。
输出格式:i,输出对应位置上的数字,每个数字一行。
对于每一个int length,n,t; long long a,value,f[100001];fin>>t;while (t--){fin>>a;if (a==1) { fout<<1<<endl; continue; }f[1]=1;f[2]=3;n=2;while (f[n]<a){n++; length=0; value=n;while (value) { value/=10; length++;}f[n]=f[n-1]+f[n-1]-f[n-2]+length;}if (f[n]==a) fout<<n%10<<endl;else {long long e,t,r=0; value=a-f[n-1];for (e=1;r<value;e++) {t=e; while (t) { t/=10; r++;}}e--;if (r==value) fout<<e%10<<endl;else {for(long s=1;s<=r-value;s++) e/=10; fout<<e%10<<endl;}}}}3、斐波那契数字统计(fibs.cpp)问题描述:编程统计从a到b中一共有多少斐波那契数。
全国青少年信息学(计算机)奥林匹克分区联赛复赛模拟试题一汇总
复赛模拟试题一(3小时,满分400分)说明:1.严格按照题目所要求的格式进行输入、输出,否则严重影响得分。
2.题目测试数据有严格的时间限制5s,超时不得分。
3.输入文件格式不用判错;从输入文件读入数据,输入文件名在程序中从键盘读入,计算结果输出到屏幕。
4.程序完成后,要按指定的提交文件名编译成EXE文件,指定的文件名如下:问题A: 天使的起誓(TENSHI NO YUBIKILI)问题描述:TENSHI非常幸运的被选为掌管智慧之匙的天使。
在正式任职之前,她必须和其他新当选的天使一样,要宣誓。
宣誓仪式是每位天使各自表述自己的使命,她们的发言稿被放在N个呈圆形排列的宝盒中。
这些宝盒按顺时针方向被编上号码1、2、3……、N-1、N。
一开始天使们站在编号为N的宝盒旁。
她们各自手上都有一个数字,代表她们自己的发言稿所在的盒子是从1号盒子开始按顺时针方向的第几个。
例如:有7个盒子,那么如果TENSHI手上的数字为9,那么她的发言稿所在盒子就是第2个。
现在天使们开始按照自己手上的数字来找发言稿,先找到的就可以先发言。
TENSHI一下子就找到了,于是她最先上台宣誓:“我将带领大家开启NOI之门……”TENSHI宣誓结束以后,陆续有天使上台宣誓。
可以有一位天使找了好久都找不到她的发言稿,原来她手上的数字M非常大,她转了好久都找不到她想找的宝盒。
任务:请帮助这位天使找到她想找的宝盒的编号。
输入格式:输入文件有两行分别正整数N和M,其中N、M满足81000 2 ≤ N ≤ 10,2 ≤ M ≤ 10输出格式:文件只有一行即宝盒的编号样例一样例二问题B: 步步高升(Step by Step)问题描述:春节的时候TENSHI去逛花市。
她来到一个卖盆竹的摊位,看到一盆叫做“步步高升”的盆竹。
“步步高升,步步高升……”学习就是要一步一步来,不能急,要打好基础。
在稳固的基础上才谈得上步步高升!TENSHI若有所思。
她看到这盆东西好意头,于是想买下。
小学生信息学奥林匹克复赛模拟试题一
小学生信息学奥林匹克复赛模拟试题一说明:1.严格按题目要求的输入、输出格式读写数据,否则不得分。
2.请在D盘根目录下建立以自己考号命名的文件夹,并把需要提交的文件(即每一题的源文件和编译后的可执行文件)保存在此文件夹内。
3.竞赛结束后速离开考场,不要关机。
第一题:开灯游戏(xj1.pas)【问题描述】有n盏灯,放在一排,从1到n依次顺序编号。
有m个人也从1到m依次顺序编号。
第1个人(1号)将灯全部关闭;第2个人(2号)将凡是2的倍数的灯打开;第3个人(3号)将凡是3的倍数的灯作相反处理(该灯如是打开的,则将它关闭;如是关闭的,则将它打开)。
以后的人都和3号一样,将凡是自己编号倍数的灯作相反处理。
试计算当第m个人操作后,哪几盏灯是亮的?【输入格式】从键盘输入n,m的值。
(n,m均为小于32768的自然数,且n>=m)【输出格式】在同一行输出亮着的灯的编号。
(没有灯亮则输出“NO”)【样例输入】5 3【样例输出】2 3 4第二题:数列求和(xj2.pas)【问题描述】简单数列是有规律排列的一些数,例如1,2,3,4,5,6,7就是这样的数列,这种数列中的后一个数总是前一个数多或少一个相同的数,其实只要知道这种数列中的前三个数和最后一个数就可以写出数列中的所有的数。
你的任务是根据给出的数列求出这个数列所有数的和。
每个数列的前三个数和最后一个数从键盘输入。
【输入格式】输入只有一行,分别为数列的前三个数和最后一个数。
所有输入均为不大于32767的自然数。
【输出格式】以等式的形式输出这个数列的和。
【样例输入1】项数=(末项-首项) div 公差+11 2 3 7【样例输出2】1+2+3+…+7=28【样例输入2】-3 -1 1 5【样例输出2】(-3)+(-1)+1+…+5=5(说明:算式中只要求输出前三个数和最后一个数,中间的数用…代表,等式左边的负数要加上小括号)第三题:算式求解(xj3.pas)【问题描述】输入一个算式,输出算式的结果。
第十一届全国青少年奥林匹克信息学联赛复赛普及组试题
第十一届全国青少年奥林匹克信息学联赛复赛普及组试题及答案陶陶摘苹果(apple.pas/c/cpp)【问题描述】陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。
苹果成熟的时候,陶陶就会跑去摘苹果。
陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。
假设她碰到苹果,苹果就会掉下来。
【输入文件】输入文件apple.in包括两行数据。
第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。
第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
【输出文件】输出文件apple.out包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
【样例输入】100 200 150 140 129 134 167 198 200 111110【样例输出】5[参考程序]题目讲解:简单的循环和文件操作的考察,和去年“不高兴的晶晶”有相似之处,但是比那一道题目简单。
program apple(input,output);varapp:array[1..10] of integer;f1,f2:text;i,j,n:integer;beginassign(f1,'apple.in');assign(f2,'apple.out');reset(f1);rewrite(f2);for i:=1 to 10 do read(f1,app);read(f1,n);j:=0;for i:=1 to 10 doif app<=n+30 then j:=j+1;writeln(f2,j);close(f1);close(f2);end.校门外的树(tree.pas/c/cpp)【问题描述】某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。
第四年全国青少年信息学(计算机)奥林匹克分区联赛高中复赛试题
第四年全国青少年信息学(计算机)奥林匹克分区联赛高中复赛试题〔高中组比赛用时: 3 小时〕1、火车从始发站〔称为第 1 站〕开出,在始发站上车的人数为a,而后抵达第 2 站,在第 2站有人上、下车,但上、下车的人数同样,所以在第2站开出时〔即在抵达第3 站以前〕车上的人数保持为 a 人。
从第 3 站起〔包含第 3 站〕上、下车的人数有必定规律:上车的人数基本上前两站上车人数之和,而下车人数等于上一站上车人数,向来到终点站的前一站〔第n-1 站〕,都知足此规律。
现给出的条件是:共有N 个车站,始发站上车的人数为 a,最后一站下车的人数是m〔所有下车〕。
试问 x 站开出时车上的人数是多少?输入: a, n, m和 x输出:从x 站开出时车上的人数。
{20%}2、设有 n 个正整数〔 n≤ 20〕,将它们联接成一排,构成一个最大的多位整数。
比如: n=3 时, 3 个整数 13, 312,343 联接成的最大整数为:34331213又如: n=4 时, 4 个整数 7, 13, 4,246 联接成的最大整数为:7424613程序输入: nn 个数程序输出:联接成的多位数{40%}3、有名科学家卢斯为了检查学生对进位制的理解,他给出了以下的一张加法表,表中的字母代表数字。
比如:{40%}其含义为:+ L K V E L+L=L, L+K=K, L+V=V, L+E=EK+L=K, K+K=V, K+V=E, K+E=KL L L K V EK K V E KL E+E=KVV V E KL KK依据这些规那么可推导出:L=0, K=1, V=2, E=3E E KL KK KV同时可以确立该表表示的是 4 进制加法程序输入:n〔 n≤9〕表示行数。
以下 n 行,每行包含n 个字符串,每个字串间用空格分开。
〔字串仅有一个为‘ +’号,其余都由大写字母构成〕程序输出:①各个字母表示什么数,格式如:L=0, K=1,②加法运的确是几进制的。
noip复赛普及组试题
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 枚金。
第十九届信息学奥赛复赛题目[5篇材料]
第十九届信息学奥赛复赛题目[5篇材料]第一篇:第十九届信息学奥赛复赛题目一、基础知识(每小题5分,共20分)1、结构化程序设计所规定的三种基本控制结构是(C)A.输入、处理、输出B.树型、网型、环型C.顺序、选择、循环D.主程序、子程序、函数2、Windows中所指的剪贴板就是(D)中的一块区域。
A.高速缓存B.光盘C.硬盘D.内存3、电脑工作时,断电后,保存在(C)中的信息不会丢失。
A.ROM和RAMB.CPUC.ROMD.RAM4、算式1*2*3*4*5*……*39*40的结果(A)被37037整除。
A.能B.不能二、编程题(共80分)1、有一个等差数列,它的前四项之和为26,之积为880,输出它的前20项。
答案:CLSFOR i1 = 1 TO 6FOR n = 1 TO 5i2 = i1 + n: i3 = i2 + n: i4 = i3 + nIF i1 + i2 + i3 + i4 = 26 AND i1 * i2 * i3 * i4 = 880 THEN GOTO 10NEXT nNEXT i1FOR i = 1 TO 20PRINT i1,i1 = i1 + nNEXT iEND2、数学上有一个称为“角谷猜想”的经典题目:对于一个任意的正整数n,如果n为偶数,则把它除以2,如果n为奇数,则把它乘3再加上1。
依此类推,当经过有限次的这种运算后,总可以得到正整数1。
输入n>=2和n<=2013的正整数,键盘输入n,还要输出运算过程。
例如:N=55*3+1=1616/2=88/2=44/2=22/2=1答案:CLSINPUT “n=”;nIF n < 2 OR n > 2013 THEN PRINT “Data error!”: GOTO 10 20 IF n MOD 2 = 0 THENPRINT n;“/2=”;n = n / 2PRINT nDO: LOOP WHILE INKEY$ = “"ELSEPRINT n;”*3+1=“;n = n * 3 + 1PRINT nDO: LOOP WHI LE INKEY$ = ”“END IFIF n > 1 THEN 20END3、用0—9这十个自然数分别组成一个一位数、两位数、三位数和四位数。
信息学奥林匹克竞赛复赛试题
2007衢州一中校庆 noip练习阿猫的实验(cat.pas/c/cpp)【问题描述】阿猫很喜欢生物学。
他还在今年的全国中学生生物学联赛中获得了一等奖。
一天,阿猫在实验室听说了这样一种繁殖能力很强的老鼠。
这种老鼠在出生后的第一个月,可以生出a 对老鼠;第二个月,可以生出b 对老鼠;第三个月及以后的每个月,都可以生出c 对老鼠。
阿猫对此十分好奇。
他很想知道,如果他有一对刚出生的老鼠,按最理想的模式繁殖,且老鼠不死,那么最少需要多少个月它们就可以覆盖整个地球。
为了完成这一猜想,阿猫需要知道这种老鼠在第N 个月时的数量。
【输入文件】输入文件cat.in 只有一行,四个数,分别为a,b,c,N(0<=a<=b<=c<=100,N<=3000),其含义为题目所述。
【输出文件】输出文件cat.out 只有一个数,为第N 个月老鼠的数量。
【输入样例】0 1 1 11【输出样例】144倒金字塔(purple.pas/c/cpp)【问题描述】Purple 国的一支科学考察队到达了举世闻名的古埃及金字塔。
关于金字塔的建造一直是一个未解之谜, 有着“西方史学之父”之称的希罗多德认为,金字塔的建造是人力和牲畜,花费20 年时间从西奈半岛挖掘天然的石头运送到埃及堆砌而成。
也有不少人认为是外星人修建的。
人们发现胡夫金字塔的经线把地球分成东、西两个半球,它们的陆地面积是相等的,这种“巧合”大概是外星人选择金字塔建造地点的用意。
法国化学家戴维·杜维斯则认为,建造金字塔的巨石不是天然的,而是人工浇筑的。
Purple 国科考队的队员们正准备研究戴维·杜维斯提出的假说。
为了研究这种假说,他们需要用到“倒金字塔模型”。
所谓倒金字塔模型,即金字塔由N 层人工浇筑的巨石堆砌而成,非底层的任意一层巨石的长度和宽度都必须要小于等于它下面的一层巨石的长度和宽度。
现在,科考队队员们打算用手里仅有N 块木板去模拟这个倒金字塔模型。
第七届全国青少年信息学(计算机)奥林匹克分区联赛辽宁赛区小学组复赛试题
word格式整理
第七届全国青少年信息学(计算机)奥林匹克分区联赛——辽宁赛区小学组复赛试题
(3小时完成)
一、编程画出下列图形。
要求:主过程名为JS1,执行主过程在屏幕上画出所有图形,图形大小和排列自定,但不能有重叠和超出屏幕现象。
(每图8分共计48分)
二、有一个整数,如果加上100,则是一个完全平方数;如果加上168,则为另一个完全平方数。
编程求此数。
要求:主过程名为JS2。
(12分)
三、编程画出下图。
要求:主过程名为JS3。
(12分)
要求:用红、绿、蓝、黑、黄五种颜色(每条弧一种颜色)画出。
背景色为白色。
提示:颜色代码如下:
红(4)、绿(2)、蓝(1)、黑(0)、黄(14)、白(15)。
四、编程画出下图。
要求:主过程名为JS4。
(12分)
五、有一圆形水池,其内半径为80厘米。
现计划沿内边缘铺一圈圆形瓷砖,有四种型号瓷砖可供选用,其规格和单价如下:
型号半径(厘米)单价(元/块)
A 20 8.00
B 15 6.50
C 10 5.00
D 5 4.00
要求:
1、编程计算:单独用一种型号瓷砖铺设时,每种型号瓷砖分别需用的数量(取整数,所缺的部分由瓷砖间的缝隙分摊。
)、总金额和铺设时瓷砖间的缝隙值。
2、编程画图:画出每种型号瓷砖的设计示意图(设计示意图要符合比例要求)。
3、执行主过程JS5,数据和图形同时显示在屏幕上。
说明:可合理运用近似计算和近似画图法进行计算和画图。
(16分)
参考资料学习帮手。
第十届全国青少年信息学奥林匹克联赛复赛试题+答案
第十届全国青少年信息学奥林匹克联赛复赛试题+答案(普及组三小时完成)不高兴的津津(unhappy.pas/dpr/c/cpp)【问题描述】津津上初中了。
妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。
另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。
但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。
假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。
请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。
【输入文件】输入文件unhappy.in包括七行数据,分别表示周一到周日的日程安排。
每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。
【输出文件】输出文件unhappy.out包括一行,这一行只包含一个数字。
如果不会不高兴则输出0,如果会则输出最不高兴的是周几(用1, 2, 3, 4, 5, 6, 7分别表示周一,周二,周三,周四,周五,周六,周日)。
如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。
【样例输入】5 36 27 25 35 40 40 6【样例输出】3花生采摘(peanuts.pas/dpr/c/cpp)【问题描述】鲁宾逊先生有一只宠物猴,名叫多多。
这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”。
鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。
在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图1)。
有经验的多多一眼就能看出,每棵花生植株下的花生有多少。
为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株,去采摘它的花生;然后再找出剩下的植株里花生最多的,去采摘它的花生;依此类推,不过你一定要在我限定的时间内回到路边。
”我们假定多多在每个单位时间内,可以做下列四件事情中的一件:1)从路边跳到最靠近路边(即第一行)的某棵花生植株;2)从一棵植株跳到前后左右与之相邻的另一棵植株;3)采摘一棵植株下的花生;4)从最靠近路边(即第一行)的某棵花生植株跳回路边。
信奥赛普及组复赛试卷
信奥赛普及组复赛试卷一、单项选择题(每题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. 以上都不对。
第二年全国青少年信息学(计算机)奥林匹克分区联赛高中复赛试卷
第二年全国青少年信息学(计算机)奥林匹克分区联赛高中复赛试卷(高中组 竞赛用时:3小时)1.竞赛安排(20分)设有有2 n (n<=6)个球队进行单循环竞赛,打算在2 n – 1天内完成,每个队每天进行一场竞赛。
设计一个竞赛的安排,使在2 n – 1天内每个队都与不同的对手竞赛。
例如n=2时的竞赛安排: 队 1 2 3 4 竞赛 1==2 3==4 一天 1==3 2==4 二天 1==4 2==3 三天 2.数制转换(20分)设有一个字符串A$的结构为: A$=’m<n>p’ 其中m 为数字串(长度<=20),而n,p 均为1或2位的数字串(其中所表达的内容在2-10之间)。
程序要求:从键盘上读入A$后(不用正确性检查),将A$中的数字串m(n 进制),以p进制的形式输出。
例如:A$=’48<10>8’其意义为:将10进制数48,转换成8进制数输出。
输出结果为:48<10>=60<8>4.挖地雷(30分)在一个地图上有N 个地窖(N<=20),每个地窖中埋有一定数量的地雷。
同时,给出地窖之间的连接路径。
例如:[题目要求]当地窖及其连接的数据给出之后,某人能够从任一处开始挖地雷,然后能够沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作终止。
设计一个挖地雷的方案,使某人能挖到最多的地雷。
输入格式: N : (表示地窖的个数)W1,W 2,W 3,……W N (表示每个地窖中埋藏的地雷数量) A 12…………… . A 1NA 23…………..A 2N ……..A N-1 NV 1V 4V 5地窖之间连接路径(其中Aij =1表示地窖i,j之间是否有通路:通Aij=1,不通Aij==0)输出格式:K1--K2--……….K V (挖地雷的顺序)MAX (挖地雷的数量)例如:⑩--------⑧④-----⑦-------⑥其输入格式为:输出:5 1 –3 -4 -510,8,4,7,6 max=271 1 1 00 0 01 114.砝码称重(30分)设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000),要求:输入方式:a1 a2 a3 a4 a5 a6(表示1g砝码有a1个,2g砝码有a2个,…,20g砝码有a6个)输出方式:Total=N(N表示用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情形)如输入:1_1_0_0_0_0 (注:下划线表示空格)输出:TOTAL=3 表示能够称出1g,2g,3g三种不同的重量。
第七届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题
第七届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题第七届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题(普及组二类试卷三小时完成)●●存盘文件名分别为C21.HTM.C22.C23.C24.C25,存到软盘上,存错无效.●●一.网页设计(20分)1.题目:珍贵的自然资源2.网页内容及技巧要求:(1)将〝珍贵的自然资源〞作为主页的主标题且滚动显示(从左到右或从右到左),字号为7号,红色:(2)以下面内容为标题创建超链接(内容可有可无,要求能从子页返回主页):美丽的祖国灰色的天空我的遐想(3)在主页适当位置以〝我爱大自然〞为题写50字左右的能充分表现出一个中学生热爱自然.热爱人类的美好情操以及为保护自然从我做起的热切愿望.版面样式要富于变化:在完成以上要求后可任意发挥,但要与主题相符.二.由键盘输入两个整数,编写程序求这两个数的最大公因子.(20分)三.已知N!=N_(N-1)_(N-2)…3_2_1,编写程序求1000!后有多少个0.(20分)四.任给出4个非0的不同数字,编写程序求出由这4个数字组成的所有4位数.例如:输入:3,2,1,6输出:1236 1263 1326 1362 1623 16322136 2163 2316 2361 2613 26313126 3162 3216 3261 3612 36216123 6132 6213 6231 6312 6321程序要求:从键盘输入4个不同的非0数字,列出由这4个数字组成的所有4位数,每行输出6个.(20分)五.编写程序实现装球(20分)设有N个盒子(N足够大,可装入任何数量的球),分别编号1,2,….同时有K个小球(K>0),今将K个小球装入到盒子中去,装入规则如下:1.第一个盒子不能为空.2.装入必须严格按递增的顺序进行.例如,当K=8,N=6装入方法有:1,2,5或1,3,43.在满足上面的两个条件下,要求有球的盒子尽可能多.4.装完之后,相邻盒子中球个数差的绝对值之和为最小(未装的盒子不计).因此在上例中,装入方法最终选1,3,4.。
第三届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题(无答案)
第三届全国青少年信息学(计算机)奥林匹克分区联赛复赛试题(初中组竞赛用时:3小时)1.设有一个n*m方格的棋盘(1≤m,n≤100)。
(30%)求出该棋盘中包含多少个正方形、多少个长方形(不包括正方形)。
例如:当n=2,m=3时正方形的个数有8个;即边长为1的正方形有6个;边长为2的正方形有2个。
长方形的个数有10个;程序要求:输入: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 A A1 A2若在N *M 的街道中,设置一个矩形障碍区域(包括围住该区域的街道)不让行人通行,如图中用“*”表示的部分。
此矩形障碍区域用2对顶点坐标给出,前图中的2对顶点坐标为:(2,2),(8,4),此时从 A 出发到达B 的路径仅有两条。
程序要求:任务一:给出N ,M 后,求出所有从A 出发到达B 的路径的条数。
任务二:给出N ,M ,同时再给出此街道中的矩形障碍区域的2对顶点坐标(X1,y1), (X2,Y2),然后求出此种情况下所有从A 出发到达B 的路径的条数。
NOIP2021提高组复赛试题
CCF全国信息学奥林匹克联赛(NOIP2021)复赛提高组 day11.生活大爆炸版石头剪子布(rps.cpp/c/pas)【问题描述】石头剪子布是常见的猜拳游戏:石头胜剪子,剪子胜布,布胜石头。
若是两个人出拳一样,那么不分输赢。
在《生活大爆炸》第二季第8集中显现了一种石头剪子布的升级版游戏。
升级版游戏在传统的石头剪子布游戏的基础上,增加了两个新手势:斯波克:《星际迷航》主角之一。
蜥蜴人:《星际迷航》中的反面角色。
这五种手势的输赢关系如表一所示,表中列出的是甲对乙的游戏结果。
表一石头剪子布升级版输赢关系此刻,小A和小B尝试玩这种升级版的猜拳游戏。
已知他们的出拳都是有周期性规律的,但周期长度不必然相等。
例如:若是小A以“石头-布-石头-剪子-蜥蜴人-斯波克”长度为6的周期出拳,那么他的出拳序列确实是“石头-布-石头-剪子-蜥蜴人-斯波克-石头-布-石头-剪子-蜥蜴人-斯波克-……”,而若是小B以“剪子-石头-布-斯波克-蜥蜴人”长度为5的周期出拳,那么他出拳的序列确实是“剪子-石头-布-斯波克-蜥蜴人-剪子-石头-布-斯波克-蜥蜴人-……”已知小A和小B一共进行N次猜拳。
每一次赢的人得1分,输的得0分;平局两人都得0分。
现请你统计N次猜拳终止以后两人的得分。
【输入】输入文件名为rps.in。
第一行包括三个整数:N,NA,NB,分别表示共进行N次猜拳、小A出拳的周期长度,小B出拳的周期长度。
数与数之间以一个空格分隔。
第二行包括NA个整数,表示小A出拳的规律,第三行包括NB个整数,表示小B出拳的规律。
其中,0表示“剪子”,1表示“石头”,2表示“布”,3表示“蜥蜴人”, 4表示“斯波克”。
数与数之间以一个空格分隔。
【输出】输出文件名为rps.out。
输出一行,包括两个整数,以一个空格分隔,别离表示小A、小B的得分。
【输入输出样例1】【输入输出样例2】【数听说明】关于100%的数据,0 < N ≤ 200,0 < NA ≤ 200, 0 < NB ≤ 200。
第十四届全国青少年信息学奥林匹克联赛复赛试题
第十四届全国青少年信息学奥林匹克联赛复赛试题(NOIP2008高组)1.笨小猴(wird.pas/c/cpp)【问题描述】笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。
但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。
【输入】输入文件word.in只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。
【输出】输出文件word.out共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”;第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。
【输入输出样例1】【输入输出样例1解释】单词error中出现最多的字母r出现了3次,出现次数最少的字母出现了1次,3-1=2,2是质数。
【输入输出样例2】【输入输出样例2解释】单词olympic中出现最多的字母i出现了2次,出现次数最少的字母出现了1次,2-1=1,1不是质数。
1 word这道题完全是送分题,只需要直接统计,再判断素数。
参考程序:varst:string;max,min,i:longint;a:array['a'..'z']of longint;ch:char;function fun(n:longint):boolean;var i:longint;beginif n<2 then begin fun:=false;exit;end;for i:=2 to n-1 doif n mod i=0 then begin fun:=false;exit;end;fun:=true;end;beginassign(input,'word.in');reset(input);assign(output,'word.out');rewrite(output);readln(st);fillchar(a,sizeof(a),0);for i:=1 to length(st) doinc(a[st[i]]);max:=0;min:=101;for ch:='a' to 'z' doif a[ch]>0 thenbeginif a[ch]>max then max:=a[ch];if a[ch]<min then min:=a[ch];end;if fun(max-min) thenbeginwriteln('Lucky Word');writeln(max-min);endelsebeginwriteln('No Answer');writeln(0);end;close(input);close(Output);end.2.火柴棒等式(matches.pas/c/cpp)【问题描述】给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2007衢州一中校庆 noip练习
阿猫的实验
(cat.pas/c/cpp)
【问题描述】
阿猫很喜欢生物学。
他还在今年的全国中学生生物学联赛中获得了一等奖。
一天,阿猫在实验室听说了这样一种繁殖能力很强的老鼠。
这种老鼠在出生后的第一个月,可以生出a 对老鼠;第二个月,可以生出b 对老鼠;第三个月及以后的每个月,都可以生出c 对老鼠。
阿猫对此十分好奇。
他很想知道,如果他有一对刚出生的老鼠,按最理想的模式繁殖,且老鼠不死,那么最少需要多少个月它们就可以覆盖整个地球。
为了完成这一猜想,阿猫需要知道这种老鼠在第N 个月时的数量。
【输入文件】
输入文件cat.in 只有一行,四个数,分别为a,b,c,N(0<=a<=b<=c<=100,N<=3000),
其含义为题目所述。
【输出文件】
输出文件cat.out 只有一个数,为第N 个月老鼠的数量。
【输入样例】
0 1 1 11
【输出样例】
144
倒金字塔
(purple.pas/c/cpp)
【问题描述】
Purple 国的一支科学考察队到达了举世闻名的古埃及金字塔。
关于金字塔的建造一直是一个未解之谜, 有着“西方史学之父”之称的希罗多德认为,金字塔的
建造是人力和牲畜,花费20 年时间从西奈半岛挖掘天然的石头运送到埃及堆砌而成。
也有不少人认为是外星人修建的。
人们发现胡夫金字塔的经线把地球分成东、西两个半球,它们的陆地面积是相等的,这种“巧合”大概是外星人选择金字塔建造地点的用意。
法国化学家戴维·杜维斯则认为,建造金字塔的巨石不是天然的,而是人工浇筑的。
Purple 国科考队的队员们正准备研究戴维·杜维斯提出的假说。
为了研究这种假说,他们需要用到“倒金字塔模型”。
所谓倒金字塔模型,即金字塔由N 层人工浇筑的巨石堆砌而成,非底层
的任意一层巨石的长度和宽度都必须要小于等于它下面的一层巨石的长度和宽度。
现在,科考队队员们打算用手里仅有N 块木板去模拟这个倒金字塔模型。
请计算出科考队队
员们能够构建的倒金字塔模型的最大高度。
【输入文件】
输入文件purple.in 的第1 行,为一个正整数N(N<=100000),表示科考队队员们手里一
共有N 块木板。
接下来N 行,每行两个数:a,b(a,b<=100000),分别表示一块木板的长度与宽度。
【输出文件】
输出文件purple.out 只有一个正整数,为最多可以堆叠的倒金字塔的高度。
所有的木板厚
度均为1。
【输入样例】
3
3 2
1 1
2 2
【输出样例】
3
打地鼠
yy.pas/c/cpp yy.in/out
SDyy喜欢游戏。
实际上,YY所喜欢的游戏都是很幼稚的。
他幼稚地找到你,让你帮他玩这个游戏。
YY的游戏名字叫打地鼠。
规则很简单。
有一个5*5的棋盘,棋盘外边是高速公路,用绿色表示。
如果两个格子拥有公共边,这2个格子就是相邻的。
左下角的棋盘格为(1,1),右上角为(5,5)
游戏开始,在第1秒钟初,YY随便找了一个格子跳了进去,每当秒针跳一下,YY可以在瞬间完成以下的一种任务:
(1)什么也不干
(2)从某个格子移动到相邻的格子
(3)从某个最外层的格子移动到高速公路上
(4)从高速公路上移动到某个最外层的格子。
但是,高速公路的管理部门告诉YY,他在任意连续3s内,至多能使用高速公路1s。
在某些秒钟,某些格子上会出现可爱的小动物,比如鼠之类的,如果在这一秒钟,YY 恰巧也在这个格子里,设坐标为(x,y)那么他就可以得到1分。
分数是累加的。
已知游戏在第M秒末结束,请帮助YY设计一个路线,使得YY可以获得最大的得分,当然为了你的方便,你只需要计算出这个最大得分就可以了。
【输入文件】yy.in
第一行N:鼹鼠出现的次数。
M:游戏的总时间
以下N行,每行包括4个整数,A B C D(1<=A,B<=5,1<=C<=D<=M),表示在第C 秒初到第D秒末,在(A,B)格子上会出现鼹鼠。
请注意C和D所构成的区间之间可能有交集。
【输出文件】yy.out
一个整数,即最高分数
【样例输入】
2 10
1 1 1 5
4 4 8 8
【样例输出】
6
【对样例的说明】
在第6s跑到公路上,第7s跑到(5,4),第8s跑到(4,4)
【数据范围】
对于30%的数据,M<=10
对于100%的数据,M<=3000,N<=1000。
每行上的CD的差的绝对值不超过10。
工作(Work.pas/exe)
【题目描述】
这次故事的主角是HG!转眼4年过去了,HG本科毕业了,于是找了份工作。
每天HG会收到一份任务清单,清单上列出了n个可能需要他完成的任务。
每个任务包含3个信息:Ti、Ai、Bi,Ti表示完成此任务需要的时间,Ai表示此任务的到达时间,Bi表示此任务的最晚完成时间。
在某一时刻若HG手上没有任务,那么他可以选择一个已经到达且还能够在Bi时刻之前(或者恰好在Bi时刻)完成的任务来做。
由于HG有点懒(纯属虚构:D),他想尽量少的减少他的总工作时间,但是他不能在可以做任务的时候故意不做(这样会被炒鱿鱼的>_<),那么他该如何挑选任务来做呢?
你的任务就是求出HG的最少工作时间(即总共有多少时间HG在做任务)。
【输入】
第一行一个整数n表示任务数。
以下n行,每行三个整数Ti,Ai,Bi。
(n<=1000,0<=Ai,Bi<=1500,Ti>=1)
【输出】
输出仅一个数,即最少工作时间。
【样例输入】
3
15 0 25
50 0 90
45 15 70
【样例输出】
50
【数据范围】
Ti>=1,0<=Ai,Bi<=1200;
30%的数据满足n<=5;
60%的数据满足n<=500;
100%的数据满足n<=1000。
【说明】
输入数据保证Bi-Ai要大于等于Ti,且小于2Ti。
又上锁妖塔
(tower.in/tower.out)
[题目描述]
小D在X星买完了想要的东西,在飞往下一个目的地的途中,正无聊的他转头看了看身边的小A,发现小A正在玩<仙剑>,可是小A很奇怪,他一直在锁妖塔的周围转来转去,可是就是不进去,于是小D问他:”你在干什么?怎么不上去?”小A说:”我在想怎么从锁妖塔外面爬上去”(倒…) 锁妖塔的建造很特别,塔总共有n层,但是高度却不相同,这造成了小A爬过每层的时间也不同.小A 会用仙术,每用一次可以让他向上跳一层或两层,但是每次跳跃后小A都将用完灵力,必须爬过至少一层才能再次跳跃(你可以认为小A需要跳两次一层才休息),小A想用最短的时间爬到塔顶,可是他不能找到时间最短的方案,所以请你帮他找到一个时间最短的方案让他爬到塔顶,小A只关心时间,所以你只要告诉他最短时间是多少就可以了.你可以最后跳到塔外即超过塔高.
[输入格式]
第一行一个数n (n<=10000),表示塔的层数.
接下来的n行每行一个数(<=100),表示从下往上每层的高度.
[输出格式]
一个数,表示最短时间
[样例输入]
5
3
5
1
8
4
[样例输出]
1
[数据规模]
对20%的数据,n<=10
对40%的数据,n<=100
对60%的数据,n<=5000
对100%的数据,n<=10000
(样例说明)。