2011年少儿信息学竞赛复赛试题
2011年金华市第二十届小学信息学竞赛试卷-pascal

2011年金华市第二十届小学信息学竞赛试卷(Pascal语言;考试时间120分钟;满分100分)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、选择题(本题共20小题,单选题,每题2分,共40分)1.统一资源定位器URL的完整格式是()。
A.协议://路径/文件名B. 协议://IP地址或域名/路径/文件名C.TCP/IP协议D.http协议2.为了测试汽车安全气囊的安全性,用计算机制作汽车碰撞的全过程,结果“驾驶员”头破血流,这里使用了哪种计算机技术()。
A.虚拟现实技术B.语音技术C.智能代理技术D.碰撞技术3.IPv6将32位地址空间扩展到()。
A.64位B.128位C.256位D.1024位4.程序存储和控制原理是由下面那个科学家提出的()A.图灵B.比尔.盖茨C.保罗.艾伦D. 冯.诺依曼5. 下列字符中,其ASCII码值最大的是()。
A.9B.D D.a D.y6. 被誉为“IT 业第一定律”的是指()。
A.摩尔定律 B.牛顿定律 C.比尔·盖茨定律 D.冯·诺依曼定律7. 在微机中,硬盘连同其驱动器属于()。
A.外(辅助)存储器B.输入设备C.输出设备D.主(内)存储器8.发现计算机病毒后,一种较为彻底的清除方法是()。
A.删除磁盘文件B.格式化磁盘C.用查毒软件处理D.用杀毒软件处理9. -22 DIV -4 MOD -3 的值为()A、0B、-1C、2D、-210. 二进制数10011010和00101011进行逻辑乘运算(即"与"运算)的结果是()。
A.00001010 B.10111011 C.11000101 D.1111111111. 按局域网的拓扑结构,请问金华一中电脑机房使用交换机和双绞线组成的网络属于()。
A.总线型B.星型C.环型 D.混合型12. 下列数据对象中,具有“先进后出”操作特征的是()。
A.队列B. 二叉树C.堆栈D.图13.在计算机领域中,通常用英文单词"BYTE"来表示()。
全国信息学联赛(NOIP)模拟试题-一试

全国信息学奥林匹克联赛(NOIP2011)复赛提高组模拟模拟试题试题试题(一试)(一试)(请选手务必仔细阅读本页内容)一.题目概况中文题目名称订正作业怪兽对对碰采油区域英文题目与子目录名correct monster oil 可执行文件名correct monster oil 输入文件correct.in monster.in oil.in 输出文件correct.out monster.out oil.out 每个测试点时限1秒1秒 1.5秒测试点数目101010每个测试点分值101010附加样例文件有有有结果比较方式全文比较(过滤行末空格及文末回车)题目类型传统传统传统二.提交源程序文件名三.运行内存限制对于pascal 语言correct.pas ball.pas .pas 对于C 语言correct.c ball.c .c 对于C++语言correct.cppball.cpp.cpp内存上限128M128M128M1.订正作业(correctcorrect.pas/c/cpp).pas/c/cpp)【问题描述】丁丁是个富有爱心的哥哥。
他上小学的弟弟小丁丁刚刚学习了四则运算,并做了作业。
现在小丁丁把自己的作业给了丁丁,请他帮忙检查订正一下作业。
作业题都是一些含有括号的四则运算等式。
丁丁发现他的弟弟对于括号的使用不太明白,在作业中写了不少多余的括号。
现在丁丁的任务是找出这些多余的括号,并把他们擦去。
但是为了尽可能避免自己的笔迹出现,只能改动括号。
要求保持原表达式中变量和运。
另外,由于弟弟在上小学,不必考虑“+”“-”作为正负号的情况。
即输入的表达式中”“-”用于“+X”(正数)或是“-X”(负数)的情况。
也不必考虑式子中有超过20输入文件名为correct.in。
第一行为一个正整数n,表示作业题的数量。
接下来的n行,每行有n个含括号的等式,表示待丁丁订正的作业题。
【输出】输出文件名为correct.out。
2011年潍坊市青少年信息学奥林匹克竞赛试题(普及组)

2011年潍坊市青少年信息学奥林匹克竞赛试题(普及组)备注:.pas/c/cpp表达的是:当使用Pascal语言编程,则源程序后缀名为.pas;C语言编程,则后缀名为.c;C++语言编程,则后缀名为.cpp。
考试注意事项:答题时间为3小时。
本试卷共4题,每题分值100分,总分400分。
各列最大值(num.pas/c/cpp)【问题描述】给定一个M行N列(1≤M,N≤100)的数组,数组内数字全部是整形,均≤1000,编程求出每列的最大值,并且输出每列最大值的和。
【输入文件】num.inM+1行,第一行是M N,中间空格隔开;第二行至M行是M行N列的数组。
【输出文件】num.out1行,N+1个数,前N个数分别为各列的最大值,第N+1个数是最大值的和。
各数用空格隔开。
【样例输入】3 21 22 33 4【样例输出】3 4 7阶乘精确值(jqz.pas/c/cpp)【问题描述】输入一个不超过1000的正整数n,输出n!=1×2×3×…×n的精确结果。
【输入文件】jqz.in一个整数,n。
【输出文件】jqz.out一个数,为输出的精确结果值。
【样例输入】30【样例输出】265252859812191058636308480000000蛇形排数(snake.pas/c/cpp)【问题描述】同学A遇到一个难题,要求是输入一个整数N,输出一个N行N列的方阵,方阵为蛇形数字组合。
他想请你帮忙解决一下这个难题。
【输入文件】snake.in一个整数,N。
(2≤N≤20)【输出文件】snake.outN行N列,为输出的蛇形数字组合。
各数字域宽为4。
【样例输入】4【样例输出】10 11 12 19 16 13 28 15 14 37 6 5 4战争通讯(war.pas/c/cpp)【问题描述】在未来的某次战争中,我军计划了一次军事行动,目的是劫持敌人的航母。
计划中要将数百条机器蛇投放到航母的各个角落里。
2011第九届绍兴市少儿信息学竞赛初赛试题

第九届绍兴市少儿信息学竞赛初赛试题(小学组PASCAL语言二小时完成),●●全部试题答案都要求写在答卷纸上,写在试卷上一律无效●●一、选择一个正确答案代码(A/B/C/D),填入每题的括号内(每题2分,每题只有一个正确答案,多选无分。
共30分)1) “图灵奖”是计算机科学界的诺贝尔奖。
迄今为止,我国只有一位科学家获得该项殊荣。
这位科学家是()A) 盖茨 B) 姚期智 C) 李开复 D) 王江明2) 文件都以一个个的图标呈现、通过对这驻图标的操作可以实现对文件的各种操作(打开、复制、粘贴等)、把文件图标拖放到“回收站”中就可以完成文件删除......这些我们目前在微软公司的Windows操作系统中熟知的技术称为“图形用户界而”。
早期的计算机使用可没这么方便,而是晦涩难懂的命令用户界面(如下图-1所示)。
图-1前面所述典型的图形用户界面技术并不是微软公司首创的。
最早将这种图形用户界面H 用到它们自己生产计算机上的公司是()A) IBM公司B)苹果公司C) Sun公司D) 德州仪器3) 班级进行班长竞选,需要集成介绍自己的文字、照片材料,并将这些材料在自己演讲时通过教室里连接了计算机的大屏蒂投影机演示。
制作这个材料最合适的软件是()4) 小薇要将自己计算机硬盘中一张电子贺卡(图像文件)以电子邮件的附件形式发送给朋友(操作界面如图-2所示)。
为了将该图像文件作为附件添加到邮件中,应选择的操作是( ) A) 1 B) 2 C) 3 D) 45) 为了将浏览网页时看到的图片保存到自己的计算机上,可以将鼠标移到该图片上,单击鼠标右键,然后在如图-3所示的快捷菜单中选择菜单命令()A) 打开链接B) 电子邮件图片C) 图片另存为D) 在新窗口中打开链接6) 下列有关信息使用的行为,最恰当的是()A)为了“偷菜”,拼命将各种人加为QQ好友B)将自己旅游所拍的风景照传到网上和朋友共享。
C)在网上下载黑客软件,用以攻击对中国D)在个人网上日志中公布自己班级同学有敌对行为的政府网站的家庭电话。
NOIP2011普及组复赛(精彩试题+源程序)

NOIP2011 普及组复赛1.数字反转(reverse.cpp/c/pas)【问题描述】给定一个整数,请将该数各个位上数字反转得到一个新数。
新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。
(参见样例2)【输入】输入文件名为reverse.in。
输入共一行,一个整数N。
【输出】输出文件名为reverse.out。
输出共1行,一个整数,表示反转后的新数。
-1,000,000,000≤N≤1,000,000,000。
【解题】这道题非常简单,可以读字符串处理,也可以读数字来处理,只不过要注意符号问题(以及-0,但测试数据没出)。
【法一】字符串处理Var i,l,k:integer;s:string;p:boolean;beginassign(input, 'reverse.in'); reset(input);assign(output, 'reverse.out'); rewrite(output);readln(s);l:=length(s);k:=1;if s[1]='-' thenbeginwrite('-');k:=2;end;p:=true;;for i:=l downto k dobeginif(p)and((s[i]='0')) then continueelsebeginwrite(s[i]);p:=false;;end;end;close(input); close(output);end.【法二】数字处理Var f:integer;n,ans:longint;beginassign(input, 'reverse.in'); reset(input);assign(output, 'reverse.out'); rewrite(output);readln(n);if n<0 thenbeginf:=-1;n:=-n;endelsef:=1;ans:=0;while n<>0 dobeginans:=ans*10+n mod 10;n:=n div 10;end;ans:=ans*f;writeln(ans);close(input); close(output);end.2.统计单词数(stat.pas/c/cpp)【问题描述】一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。
NOIP2011模拟试题及解析

NOIP2011模拟试题及解析128MClass(class.pas/c/cpp)【问题描述】信息班这期的课将要结束了,老师要从现在班上的同学中选出比较优秀的同学进入下一期的学习。
而录取标准则是将平时作业和考试一起考虑,综合成绩排在前面的则录取。
经过一番思考,老师作了以下的筛选计划:1、设计两个参数x,y,学生总成绩为平时成绩的x%和考试成绩的y%。
2、将同学按总成绩排名,招收总成绩在前15的学生,不够15则全部录取。
注:总成绩在第15的如果有多人,则可以被同时录取。
例如:18个人总成绩从大到小依次为95,93,93,88,87,84,80,75,70,68,66,65,60,58,57,57,56,55。
那么93,93同为第2名,而88为第4名,57,57同为第15名,都被录取。
而56,55则不被录取。
老师因为招生培训的事情很忙,所以现在她把信息班学生的成绩表给了你,希望你能告诉她哪些同学被录取了。
【输入】输入文件class.in第一行有三个数N,x,y。
表示信息班有N个同学以及参数x,y。
第二行N个数,分别为A1,A2,A3 … AN。
Ai表示编号为i的同学的平时成绩。
第三行N个数,分别为B1,B2,B3 … BN。
Bi表示编号为i的同学的考试成绩。
【输出】输出文件class.out共一行,为被录取同学的编号,按照升序输出。
【输入输出样例】【数据说明】1<=N<=1000<=x,y<=1000<=平时成绩,考试成绩<=100以上数据皆为整数模拟。
首先求出所有人的总分,然后进行快排(注意第15名的并列情况),人数小于15时,输出1到n;否则将入围人员的编号进行排序升序输出。
程序如下:program zk;varp,k,h,zong:array [0..200] of longint;i,j,a,b,c,n,x,y,xian,f:longint;procedure qsort(x,y:longint);varxo,yo,zz,mid,z:longint;beginxo:=x; yo:=y;mid:=zong[(xo+yo) div 2];repeatwhile zong[xo]>mid do inc(xo);while zong[yo]<mid do dec(yo);if xo<=yo thenbeginz:=zong[xo];zong[xo]:=zong[yo];zong[yo]:=z;zz:=h[xo];h[xo]:=h[yo];h[yo]:=zz;inc(xo); dec(yo);end;until xo>yo;if x<yo then qsort(x,yo);if xo<y then qsort(xo,y);end;procedure qsorth(x,y:longint); varxo,yo,zz,mid,z:longint;beginxo:=x; yo:=y;mid:=h[(xo+yo) div 2]; repeatwhile h[xo]<mid do inc(xo);while h[yo]>mid do dec(yo);if xo<=yo thenbeginzz:=h[xo];h[xo]:=h[yo];h[yo]:=zz;inc(xo); dec(yo);end;until xo>yo;if x<yo then qsorth(x,yo);if xo<y then qsorth(xo,y); end;beginassign(input,'class.in'); assign(output,'class.out'); reset(input);rewrite(output);readln(n,x,y);for i:=1 to n doread(p[i]);readln;for i:=1 to n dobeginh[i]:=i;read(k[i]);end;for i:=1 to n dozong[i]:=p[i]*x+k[i]*y;qsort(1,n);xian:=15;if n>=15 thenbeginf:=zong[xian];while zong[xian+1]=f doxian:=xian+1;endelse xian:=n;qsorth(1,xian);for i:=1 to xian dowrite(h[i],' ');close(input);close(output);end.Clean(clean.pas/c/cpp)【问题描述】最近甲型H1N1流感病毒肆虐。
最新NOIP复赛普及组试题资料

全国信息学奥林匹克联赛(NOIP2011)复赛普及组(请选手务必仔细阅读本页内容)一.题目概况二.提交源程序文件名三.编译命令(不包含任何优化开关)四.运行内存限制注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
3、全国统一评测时采用的机器配置为:CPU P4 3.0GHz,内存1G,上述时限以此配置为准。
4、特别提醒:评测在NOI Linux 下进行。
1.数字反转(reverse.cpp/c/pas)【问题描述】给定一个整数,请将该数各个位上数字反转得到一个新数。
新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
【输入】输入文件名为reverse.in。
输入共1 行,一个整数N。
【输出】输出文件名为reverse.out。
输出共1 行,一个整数,表示反转后的新数。
【输入输出样例1】【输入输出样例2】【数据范围】-1,000,000,000 ≤ N ≤ 1,000,000,000。
2.统计单词数(stat.cpp/c/pas)【问题描述】一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。
现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。
注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2)。
【输入】输入文件名为stat.in,2 行。
第1 行为一个字符串,其中只含字母,表示给定单词;第2 行为一个字符串,其中只可能包含字母和空格,表示给定的文章。
【输出】输出文件名为stat.out。
最新2011第九届绍兴市少儿信息学竞赛初赛试题

第九届绍兴市少儿信息学竞赛12初赛试题3(小学组PASCAL语言二小时完成),●●全部试题答案都要求写在答卷纸上,写在试卷上一律无效●●45一、选择一个正确答案代码(A/B/C/D),填入每题的括号内(每题2分,每题只有一个6正确答案,多选无分。
共30分)71) “图灵奖”是计算机科学界的诺贝尔奖。
迄今为止,我国只有一位科学家获得该项殊8荣。
9这位科学家是()10A) 盖茨 B) 姚期智 C) 李开复 D) 王江明112) 文件都以一个个的图标呈现、通过对这驻图标的操作可以实现对文件的各种操作(打12开、复制、粘贴等)、把文件图标拖放到“回收站”中就可以完成文件删除......这些我们13目前在14微软公司的Windows操作系统中熟知的技术称为“图形用户界而”。
早期的计算机使用可15没这么方便,而是晦涩难懂的命令用户界面(如下图-1所示)。
1617图-118前面所述典型的图形用户界面技术并不是微软公司首创的。
最早将这种图形用户界面H 用19到它们自己生产计算机上的公司是()20A) IBM公司B)苹果公司C) Sun公司D) 德州仪器3) 班级进行班长竞选,需要集成介绍自己的文字、照片材料,并将这些材料在自己演讲2122时通过教室里连接了计算机的大屏蒂投影机演示。
制作这个材料最合适的软件是()23244) 小薇要将自己计算机硬盘中一张电子贺卡(图像文件)以电子邮件的附件形式发送给25朋26友(操作界面如图-2所示)。
为了将该图像文件作为附件添加到邮件中,应选择的操作是( )2728A) 1 B) 2 C) 3 D) 429305) 为了将浏览网页时看到的图片保存到自己的计算机上,31可以将鼠标移到该图片上,单击鼠标右键,然后在如图-3所示32的快捷菜单中选择菜单命令()33A) 打开链接34B) 电子邮件图片35C) 图片另存为D) 在新窗口中打开链接366) 下列有关信息使用的行为,最恰当的是()37A)为了“偷菜”,拼命将各种人加为QQ好友38B)将自己旅游所拍的风景照传到网上和朋友共享。
NOIP2011普及组复赛试题

1 ≤ 单词长度 ≤ 10。 1 ≤ 文章长度 ≤ 1,000,000。
3.瑞士轮
(swiss.cpp/c/pas) 【背景】
在双人对决的竞技性比赛,如乒乓球、羽毛球、国际象棋中,最常见的赛制是淘汰赛和 循环赛。前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高。后者的特点是较为公 平,偶然性较低,但比赛过程往往十分冗长。
选手、R 轮比赛,以及我们关心的名次 Q。 第二行是 2*N 个非负整数 s1, s2, …, s2N,每两个数之间用一个空格隔开,其中 si 表示编
号为 i 的选手的初始分数。 第三行是 2*N 个正整数 w1, w2, …, w2N,每两个数之间用一个空格隔开,其中 wi 表示编
号为 i 的选手的实力值。
(’、’)’是左右括号,’+’、’*’分别表示前面定义的运算符“⊕”和“×”。这行字符按顺序
给出了给定表达式中除去变量外的运算符和括号。 【输出】
输出文件 exp.out 共 1 行。包含一个整数,即所有的方案数。注意:这个数可能会很大, 请输出方案数对 10007 取模后的结果。
【输入输出样例 1】 exp.in 4 +(*)
三.编译命令(不包含任何优化开关)
对于 C++语言 g++ -o reverse g++ -o stat
reverse.cpp -lm stat.cpp -lm
对于 C 语言
gcc -o reverse gcc -o stat
reverse.c -lm
stat.c -lm
对于 pascal 语言 fpc reverse.pas fpc stat.pas
①—④ ②—③
2011年海淀区中小学生信息学 奥林匹克竞赛(上机改动)

31
26
28
zhangfang
wanghong
200 300(两个数据之间空一格) 【输出样例】:sushu.out的内容为:
227 283 229 281
233 277 239 271 241 269 251 293 263 281 7
五、字符串(题目名称:zfc.bas) (12分)
从键盘输入一个长度不大于20的字符串,现要求:将字符串中的小写字 母都改成相应的大写字母,其他字符依照原有顺序不变。 【输入文件】 文件名:zfc.in
【输入文件】 文件名:pfang.in 文件中只有一行,包含两个用空格隔开的任意自然数M
和N (其中100<=M<N<=999)。
【输出文件】 文件名:pfang.out 文件中共有若干行:前若干行每行一个整数是任意自然
数M~N之间所有满足条件的平方数;最后一行是统计这些平方数 的个数。若没有满足条件的完全平方数,直接输0。 【要求】 每一行的数据都从第一列开始输出。 【输入样例】:pfang.in的内容为:
【输入文件】 文件名:sushu.in 文件中只有一行,包含两个用空格隔开的任意自然数M
和N (其中100<=M<N<=999)。
【输出文件】 文件名:sushu.out 文件中共有若干行: 前若干行每行为一对满足条件的素数对(数据之间空1
格); 最后一行是统计这些素数对的个数。如果没有则只输出
0即可。 【要求】 每一行的数据都从第一列开始输出。 【输入样例】:sushu.in的内容为:
现在请你计算一下:1) 每位同学合计花了多少元(如果有小 数,最后结果下取整即可)? 2) N名同学购买学习用品平均花费的 钱数是多少元(如果有小数,最后 结果下取整即可)? 3) 统计N名同学中哪些同学购买学习 用品的花费低于平均花费(注意是 低于实际平均花费,并非上面的显 示值)?
NOIP2011复赛题解

NOIP2011复赛题解noip2011普及组解题报告NOIP2011普及组解题报告——ahbbzeq 2011.11.25 转载请注明来源一、数字反转没得满分只能说明一个问题,你的程序写的太少了。
program reverse;vars:string;i,sta:longint;beginassign(input,'reverse.in');reset(input);assign(output,'reverse.out');rewrite(output);readln(i);str(i,s);sta:=1;if s[1]='-' thenbeginwrite('-');sta:=2;end;i:=length(s);while (s[i]='0') and (i>sta) dodec(i);while (i>=sta) dobeginwrite(s[i]);dec(i);end;close(input);close(output);end.二、统计单词个数考你的基本功,和对程序的理解,尤其是细节上的优化。
直接在文章中选出单词,与给定单词长度一致时才比较,函数传参数时也不要传字符串(会很慢的,具体慢多少没试)。
program stat;vars,p:ansistring;i,j,first,num,len,c,k:longint;function cmp(x:longint):boolean;vari:longint;beginfor i:= 1 to c doif s[i]<> p[x+i-1] then exit(false);exit(true);end;beginassign(input,'stat.in');reset(input);assign(output,'stat.out');rewrite(output);readln(s);readln(p);s:=upcase(s);p:=upcase(p);c:=length(s); len:=length(p);i:=1; num:=0; first:=-1;while (s[i]=' ')and (i<=len) do inc(i);while (i<=len) dobeginj:=i+1;while (p[j]<>' ') and (j<=len) doinc(j);if (j-i = c) and cmp(i) thenbeginif first=-1 then first:=i;inc(num);end;i:=j; while (p[i]=' ') and (i<=len) do inc(i); end;if first=-1 thenwriteln(-1)else writeln(num,' ',first-1);close(input);close(output);end.三、瑞士轮实践证明,如果单纯的排序r次,必然结果是超时。
第十一届全国青少年信息学奥林匹克联赛复赛试题普及组三小时完成静静摘苹果

第十一届全国青少年信息学奥林匹克联赛复赛试题(普及组三小时完成)静静摘苹果【解题报告】简单模拟题。
【数据说明】所有数据时限均为1秒。
校门外的树【解题报告】解法一:对区间进行排序:先按照起始点的坐标大小排序(先小后大),起始点相同的时候按照终止点的坐标大小排序(先小后大)。
排序之后可以剔除重叠的部分。
然后计算剩余的树的数目。
时间复杂度O(M logM)。
解法二:对每个树作一个标记。
如果某区域包含这棵树,则标记这个树被移走。
可以重复标记。
最后统计剩下树的数目。
时间复杂度最大是O(L * M)。
两种方法都可以通过所有数据。
【数据说明】所有数据时限均为1秒。
前2组数据区域之间没有重合,通过简单的计数就可以得到答案。
采药【解题报告】解法一:枚举或搜索所有在T时刻内可能采到的药的组合,计算最大价值。
时间复杂度不小于O(2M)。
解法二:动态规划:记f(t, m)是如果只采前m株草药,在时间t里能够得到的最大价值。
可以得到f(t, m) = max{f(t, m – 1), f(t –采第m株草药需要的时间, m – 1) + 第m株草药的价值} 时间复杂度O(T * M)。
【数据说明】所有数据时限均为1秒。
前3组数据规模很小,使用解法一就可以得到答案。
循环【解题报告】因为后k位的数字无非就是00...00(k个0)至99...99(k个0)这100...00(k个0)个不同的数,因此,在前100...01(k - 1个0)次至少有2次的值相等。
如果最先出现重复的n的两个次幂分别是a和a + L,那么如果a不等于1,就没有循环;如果a等于1,则循环长度是L。
解法一:依次计算n1,n2,n3,……直到发现n a 和n a + L的最后k位都相同。
不考虑高精度运算,最差时间复杂度是O(10k)。
解法二:容易知道,如果后p位的循环长度是L,则后p + 1位的循环长度是L的倍数。
因此计算后p + 1位的循环长度时,只用计算n1,n L + 1,n2L + 1,……。
noip2011(普及)复赛试题

1.数字反转(reverse.pas)【问题描述】给定一个整数,请将该数各个位上数字反转得到一个新数。
新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。
(参见样例2)【输入】输入文件名为reverse.in。
输入共一行,一个整数n。
【输出】输出文件名为reverse.out。
输出共一行,一个整数,表示反转后的新数。
【输入输出样例1】reverse.in reverse.out123 321【输入输出样例2】reverse.in reverse.out-380 -83【数据范围】-1,000,000,000≤N≤1,000,000,000。
2.统计单词数(stat.in)【问题描述】一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。
现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。
注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下相同(参见样例1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2)。
【输入】输入文件名为stat.in,2行。
第一行为一个字符串,其中只含字母,表示给定单词;第二行为一个字符串,其中只能包含字母和空格,表示给定的文章。
【输出】输出文件名为stat.out。
只有一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从0开始);如果单词在文章中没有出现,则直接输出一个整数-1。
【输入输出样例1】stat.in stat.outTo 2 0to be or not to be is a question【输入输出样例1说明】输出结果表示给定的单词To在文章中出现两次,第一次出现的位置为0.【输入输出样例2】stat.in stat.outto -1 Did the Ottoman Empire lose its power at that time【输入输出样例2说明】表示给定的单词to在文章中没有出现,输出整数-1.【数据范围】1≤单词长度≤10。
2011noip提高组复赛题解

Noip 2011 提高组(Day 1)解题报告及程序一、铺地毯正着扫一遍判断每个矩形是否覆盖询问的点,覆盖则更新结果或者倒着扫一遍,找到第一个覆盖询问点的矩形,输出即可,时间复杂度O(n)Procedure:#include <cstdio>#define MaxLength 10000inline int Getint(){char c = getchar();while (c<'0' || c>'9') c = getchar();int ret = 0;while (c>='0' && c<='9'){ret = ret*10 + (c-'0');c = getchar();}return ret;}int sx[MaxLength+5], sy[MaxLength+5], ex[MaxLength+5], ey[MaxLength+5], n; void Init(){n = Getint();for (int i=1; i<=n; i++){sx[i] = Getint(), sy[i] = Getint(), ex[i] = Getint(), ey[i] = Getint();ex[i] += sx[i], ey[i] += sy[i];}return ;}int x0, y0, ans = -1;void Solve(){x0 = Getint(), y0 = Getint();for (int i=n; i;i--)if(x0>=sx[i] && x0<=ex[i] && y0>=sy[i] && y0<=ey[i]){ans = i;break;}printf("%d", ans);return ;}int main(){Init();Solve();getchar(); getchar();return 0;}二、选择客栈f [i][j]表示前i个客栈以第j种颜色的方案数,先以客栈划分第一阶段,以颜色划分第二阶段,如果颜色相同的客栈,则以前一客栈相同颜色的方案数+1,否则同其一样;计算答案时记一下前一个比最高消费限制低的客栈编号pos[i],路径压缩,时间复杂度O(nm)Procedure:#include <cstdio>#define MaxNode 200000#define MaxType 50inline int Getint(){char c = getchar();while (c<'0' || c>'9') c = getchar();int ret = 0;while (c>='0' && c<='9'){ret = ret*10 + (c-'0');c = getchar();}return ret;}int color[MaxNode+5], price[MaxNode+5], n, m, low;void Init(){n = Getint(), m = Getint(), low = Getint();for (int i=1; i<=n; i++) color[i] = Getint(), price[i] = Getint();return ;}int f[MaxNode+5][MaxType+5], pos[MaxNode+5], ans = 0;void Dp(){for (int i=1; i<=n; i++)for (int j=0; j<m; j++)if (color[i]==j) f[i][j] = f[i-1][j]+1;else f[i][j] = f[i-1][j];for (int i=1; i<=n; i++)if (price[i]<=low){pos[i] = i;ans += f[i-1][color[i]];}else{pos[i] = pos[i-1];ans += f[pos[i]][color[i]];}printf("%d", ans);return ;}int main(){Init();Dp();getchar(); getchar();return 0;}三、Mayan纯暴力DFS,加可行性剪枝,如同一种颜色小于3块无法消除,同一颜色交换无意义,下落无法完成左右移动,再加模拟其过程时间复杂度O( n^(?) )Procedure:#include <cstdio>#include <memory>inline int Getint(){char c = getchar();while (c<'0' || c>'9') c = getchar();int ret = 0;while (c>='0' && c<='9'){ret = ret*10 + (c-'0');c = getchar();}return ret;}inline void Swap(int &a, int &b){int temp = a; a = b; b = temp;return ;}int map[10][10], point[10], color[15], n, type = 0;void Init(){n = Getint();for (int i=0; i<5; i++){map[i][0] = Getint();if (type<map[i][point[i]]) type = map[i][point[i]];color[ map[i][point[i]] ]++;while (map[i][point[i]]){map[i][++point[i]] = Getint();if (type<map[i][point[i]]) type = map[i][point[i]];color[ map[i][point[i]] ]++;}point[i]--;}return ;}bool Fall(int k){int top = -1;for (int i=0; i<=point[k]; i++)if (map[k][i]) map[k][++top] = map[k][i];if (top!=point[k]){for (int i=top+1; i<=point[k]; i++) map[k][i] = 0;point[k] = top;return true;}return false;}bool Check_Fall(){bool flag = false;for (int i=0; i<5; i++)if (Fall(i)) flag = true;return flag;}bool sign[10][10];void Clear(){int pmax = 0;for (int i=0; i<5; i++)if (point[i]>pmax) pmax = point[i];for (int i=0; i<5; i++)if (point[i]>=2){int k = point[i], j = k-1;for (; j>=0; j--)if (map[i][j]!=map[i][k]){if (k-j>=3)for (; k>j; k--) sign[i][k] = true;else k = j;}if (k-j>=3)for (; k>j; k--) sign[i][k] = true;}for (int i=0; i<=pmax; i++){int k = 0, j = 1;for (; j<5; j++)if (map[j][i]!=map[k][i]){if (j-k>=3)for (; k<j; k++) sign[k][i] = true;else k = j;}if (j-k>=3)for (; k<j; k++) sign[k][i] = true;}for (int i=0; i<5; i++)for (int j=pmax; j>=0; j--)if (sign[i][j]){sign[i][j] = false;color[map[i][j]]--;map[i][j] = 0;}return ;}void Solve(int x, int y){Fall(x), Fall(y);Clear();while (Check_Fall()) Clear();return ;}bool Check_Point(){for (int i=0; i<5; i++)if (point[i]>=0)return false;return true;}bool Check_Color(){for (int i=1; i<=type; i++)if (color[i]==1 || color[i]==2) return false;return true;}struct Ac{int m[10][10], p[10], c[15];}a[10];inline void Copy(int k){memcpy(a[k].m, map, sizeof(map));memcpy(a[k].p, point, sizeof(point));memcpy(a[k].c, color, sizeof(color));return ;}inline void Turn_Copy(int k){memcpy(map, a[k].m, sizeof(a[k].m));memcpy(point, a[k].p, sizeof(a[k].p));memcpy(color, a[k].c, sizeof(a[k].c));return ;}int ans[10][10];bool Dfs(int deep){if (!Check_Color()) return false;Copy(deep);for (int i=0; i<5; i++)for (int j=0; j<=point[i]; j++){ans[deep][0] = i, ans[deep][1] = j;if (i<4){ans[deep][2] = 1;Swap(map[i][j], map[i+1][j]);if (point[i+1]<j) point[i+1] = j;Solve(i, i+1);if (deep==n && Check_Point()) return true;if (deep<n && Dfs(deep+1)) return true;Turn_Copy(deep);}if (i && point[i-1]<j){ans[deep][2] = -1;Swap(map[i][j], map[i-1][j]);point[i-1] = j;Solve(i, i-1);if (deep==n && Check_Point()) return true;if (deep<n && Dfs(deep+1)) return true;Turn_Copy(deep);}}return false;}int main(){Init();if (!Dfs(1)) printf("-1");elsefor (int i=1; i<=n; i++)printf("%d %d %d\n", ans[i][0], ans[i][1], ans[i][2]);getchar(); getchar();return 0;}Noip 2011 提高组(Day 2)解题报告及程序一、计算系数二项式定理,杨辉三角,注意Mod就可以了,时间复杂度O(k^2)Procedure:#include <cstdio>#define MaxNode 1000#define Mod 10007int f[MaxNode+5][MaxNode+5], a, b, k, n, m;void Init(){scanf("%d %d %d %d %d", &a, &b, &k, &n, &m);a %= Mod,b %= Mod, k++;for (int i=1; i<=k; i++) f[i][1] = f[i][i] = 1;for (int i=2; i<=k; i++)for (int j=2; j<i; j++)f[i][j] = (f[i-1][j-1] + f[i-1][j])%Mod;return ;}void Solve(){int x = k, y = k-n;for (int i=1; i<=n; i++) f[x][y] = (f[x][y] * a)%Mod;for (int j=1; j<=m; j++) f[x][y] = (f[x][y] * b)%Mod;printf("%d", f[x][y]%Mod);return ;}int main(){Init();Solve();getchar(); getchar();return 0;}二、聪明的质检员由观察得随着参数W的上升检验值temp会减小,据函数Abs(标准值-temp)有最小值,故可二分查找得出答案其中每次调整参数W时扫描一次矿石中大于W的,num[]表示其数量前缀和,val[]表示其价值前缀和,故可在一个区间的检验值计算中以O(1)的时间得出答案时间复杂度O(log(w)*(n+m))Procedure:#include <cstdio>#define MaxNode 200000#define INF ((0x7fffffffffffffffll)>>1)inline int Getint(){char c = getchar();while (c<'0' || c>'9') c = getchar();int ret = 0;while (c>='0' && c<='9'){ret = ret*10 + (c-'0');c = getchar();}return ret;}long long Abs(long long a){if (a>0) return a;return -a;}int w[MaxNode+5], val[MaxNode+5], l[MaxNode+5], r[MaxNode+5], n, m, lw, rw; long long standard;void Init(){n = Getint(), m = Getint(), scanf("%I64d", &standard);for (int i=1; i<=n; i++){w[i] = Getint(), val[i] = Getint();if (rw<w[i]) rw = w[i]+1;}for (int i=1; i<=m; i++) l[i] = Getint(), r[i] = Getint();return ;}int num[MaxNode+5];long long sum[MaxNode+5];long long Calc(int left, int right){return (sum[right]-sum[left]) * (num[right]-num[left]);}long long Sieve(int Limit){long long ret = 0;sum[0] = num[0] = 0;for (int i=1; i<=n; i++){num[i] = num[i-1];sum[i] = sum[i-1];if (w[i]>=Limit){num[i]++;sum[i] += val[i];}}for (int i=1; i<=m; i++) ret += Calc(l[i]-1, r[i]);return ret;}long long ans = INF;void Binary_Search()while (lw<rw){int mid = (lw+rw)>>1;long long temp = Sieve(mid);long long value = Abs(standard - temp);if (temp<standard) rw = mid;else lw = mid+1;if (ans>value) ans = value;}printf("%I64d", ans);return ;}int main(){Init();Binary_Search();getchar(); getchar();return 0;}三、观光公交贪心令t[i]表示当前到达第i个站的时间,sumoff[i]表示目的地为i的乘客数,arrtime[i]表示第i个乘客到站等车的时刻题目给定加速器的作用就是可以把某个t[i]减去1并把与其相关联的t[i]全部减小1。
2011安徽信息学竞赛(小学组)试题和解题思路

2011年安联杯安徽省青少年信息学奥林匹克竞赛小学组试题AOI 2011比赛时间:2011年4月16日08:00至12:00题目名称三次方求和最高得分字母项链源文件名cubsum.pas/c/cpp maxvalue.pas/c/cpp necklace.pas/c/cpp 输入文件名cubsum.in maxvalue.in necklace.in输出文件名cubsum.out maxvalue.out necklace.out试题类型传统型传统型传统型满分100 100 100是否有部分分否否否时限1秒1秒1秒内存限制128M 128M 128M注意事项1.务必看清题目,严格按照所要求的格式输入、输出。
2.在调试程序时请先使用题目中的示例数据,然后再自行设计多组测试数据进行调试。
3.测试有严格的时间限制,请尽可能优化算法。
4.命名规则:(1)每题都规定了该题的英文名称。
(2)程序文件和数据文件的主文件名都是该题的英文名字。
(3)程序文件扩展名采用语言环境的默认扩展名。
(4)数据文件都是文本文件,输入和输出文件的扩展名分别是.in和.out。
5.程序应从输入文件读取数据,并严格地按照规定的输出格式将结果输出到输出文件中。
输入数据文件和输出数据文件都与程序在同一个目录中,由----------专业最好文档,专业为你服务,急你所急,供你所需-------------于程序所在目录是不确定的,因此不允许在程序中含有盘符信息和任何形式的路径信息。
6.选手在竞赛结束时应在D盘根目录下建立以参赛号命名的文件夹,并将所完成各题的源程序文件放到该文件夹中。
测试以评测组编译的可执行文件为准,测试系统使用的是标准的编译指令处理源程序,没有附加任何编译选项,请选手按照考试机器上语言环境的默认配置来编译调试自己的程序。
题目1.三次方求和(cubsum)卡卡西要过10岁生日啦!今年,她特别想要一份与众不同的礼物,那就是一条能在阳光下发出五光十色耀眼光芒的水晶项链。
2011年少儿信息学竞赛复赛试题

第九届绍兴市少儿信息学竞赛复赛试题(2011年6月25日下午1:30-4:00)一、题目概览二、提交源程序文件名三、比赛目录结构示例选手比赛时,需在本机为每题建立对应的题目目录,目录名称与题目英文名称相同。
选手根据题目要求,将自己提交的源程序,放在该题的题目目录下。
每位选手把自己提交的源程序连同要求的目录结构,存入D盘根目录中。
(只递交源程序,测试时以源程序为准)例如:假设试卷中有cashier、dune、manhattan三题,选手sx1001使用Pascal答题,其最终提交的文件为cashier.pas、dune.pas、manhattan.pas,则该选手提交的目录结构如下所示:|---sx1001/|---cashier/|---cashier.pas|---dune/|---dune.pas|---manhattan/|---manhattan.pas四、特别提醒比赛开始前应先检查本机能否正常使用,如有问题可向监考老师提出。
比赛结束后应及时离开机房,但注意不要关机。
第一题木材加工( 文件名mcjg.pas )试题描述:2049年,智能机器人在各行各业中的应用已经十分普遍了,小明的运输队里就有一个,是专门用来装卸货物的。
这天,他们的任务是要把N(2 <= N <= 50)根木材运送到家具厂去。
这些木材长短不同(有些还特别的长),为了便于运输,只好把它们切割成小段。
所以,小明给机器人的任务是:把这些木材切割并装上卡车。
等机器人做完这事的时候,小明一看结果,大吃一惊:原来装在车上的所有小段的木材,居然长度都是一样的(以米为单位),而且,还是所有可行方案中,切割次数最少的那种方案!如果告诉你最开始那N根木材的长度,你能算出机器人切割出的小段的长度吗?输入描述:输入文件mcjg.in,第一行有一个整数N ,表示原始木材的数量。
第二行中是N个用空格分开的整数,表示每根木材的长度(以米为单位),已知这些整数不小于1,不超过400000。
NOIP2011 提高组 Day2

全国信息学奥林匹克联赛(NOIP2011)复赛提高组day2 全国信息学奥林匹克联赛(NOIP2011)复赛提高组 day2(请选手务必仔细阅读本页内容)一.题目概况注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
3、全国统一评测时采用的机器配置为:CPU P4 3.0GHz,内存1G,上述时限以此配置为准。
4、特别提醒:评测在NOI Linux 下进行。
全国信息学奥林匹克联赛(NOIP2011)复赛提高组day2【问题描述】1.计算系数(factor.cpp/c/pas)给定一个多项式(ax + by)k ,请求出多项式展开后x n y m 项的系数。
【输入】输入文件名为factor.in。
共一行,包含5 个整数,分别为a,b,k,n,m,每两个整数之间用一个空格隔开。
【输出】输出文件名为factor.out。
输出共1 行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模后的结果。
【输入输出样例】对于30%的数据,有0≤k≤10;对于50%的数据,有a = 1,b = 1;对于100%的数据,有0≤k≤1,000,0≤n, m≤k,且n + m = k,0≤a,b≤1,000,000。
【问题描述】2.聪明的质监员(qc.cpp/c/pas)小T 是一名质量监督员,最近负责检验一批矿产的质量。
这批矿产共有n 个矿石,从1 到n 逐一编号,每个矿石都有自己的重量w i 以及价值v i。
检验矿产的流程是:1、给定m 个区间[L i,R i];2、选出一个参数W;3、对于一个区间[L i,R i],计算矿石在这个区间上的检验值Y i :Yi=∑1* ∑v j ,j ∈[L i , R i ] 且w j ≥W ,j 是矿石编号j jm这批矿产的检验结果Y 为各个区间的检验值之和。
NOIP2011题解

3 / 16
复杂度:O(n^2m) 期望分数 30 分 算法 3:
对于算法 1,我们需要依次枚举每一个区间,后枚举每一个区间内的所有矿石,由 于区间可能重复的非常多,所以我们做了很多“无用功”。对于当前参数 w,我们 可以预处理出一个前缀和 cnt[i]表示前 i 个矿石 w[i]>=w 的个数,sum[i]表示前 i 个矿石 w[i]>=w 的价值和,则递推式为: 边界条件:cnt[0]=0 sum[0]=0 若 w[i]>=w 则
2. Hotel 选择客栈 按照题目要求的进行模拟,每次选择两个进行判断,若满足以下条件: (1)两个客栈颜色相同 (2)两个客栈中间(包含两个客栈)中存在一家咖啡店最低消费小于等于 p 的 即算作一个满足条件的解,题目要求求出解的个数。 算法 1: 枚举两个客栈,判断颜色是否相同,并顺序枚举求两个客栈的最小值,看是否小于 等于 p。 复杂度 O(N^3) 期望得分 30-40 分 算法 2: 对于求两个客栈的最小值问题,为经典的 RMQ 问题,可以用线段树维护一段区间的 最小值。 复杂度 O(NlogN+N^2logN) 期望得分 50 分 算法 3: 对于思路 2,可以用 ST 算法 O(1)时间求出两个区间的最小值。 复杂度 O(NlogN+N^2) 期望得分 50-60 分 具体请参考程序 2 算法 4: 我们发现这个 RMQ 问题有很强的特殊性,由于我们要枚举所有的区间,按照双重循
NOIP2011提高组试题-day1

全国信息学奥林匹克联赛(NOIP2011)复赛提高组 day1(请选手务必仔细阅读本页内容)一.题目概况中文题目名称铺地毯选择客栈 mayan游戏英文题目与子目录名 carpet hotel mayan 可执行文件名 carpet hotel mayan 输入文件名 carpet.in hotel.in mayan.in 输出文件名 carpet.out hotel.out mayan.out 每个测试点时限1秒1秒3秒测试点数目 10 10 10 每个测试点分值 10 10 10 附加样例文件有有有结果比较方式全文比较(过滤行末空格及文末回车)题目类型传统传统传统二.提交源程序文件名对于C++语言 carpet.cpp hotel.cpp mayan.cpp 对于C语言 carpet.c hotel.c mayan.c 对于pascal语言carpet.pas hotel. pas mayan. pas三.编译命令(不包含任何优化开关)对于C++语言g++ -o carpetcarpet.cpp -lm g++ -o hotelhotel.cpp -lmg++ -o mayanmayan.cpp -lm对于C语言gcc -o carpetcarpet.c -lm gcc -o hotel hotel.c-lmgcc -o mayanmayan.c -lm对于pascal语言fpc carpet.pas fpc hotel.pas fpc mayan.pas四.运行内存限制内存上限128M 128M 128M注意事项:1、文件名(程序名和输入输出文件名)必须使用英文小写。
2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
3、全国统一评测时采用的机器配置为:CPU P4 3.0GHz,内存1G,上述时限以此配置为准。
4、特别提醒:评测在NOI Linux下进行。
2011北京市小学生信息学竞赛补充练习题目

2011北京市小学生信息学竞赛补充练习题目:求可逆质数(prime.bas)【问题描述】如果把一个质数N的每一位倒过来排列得到的整数N’也是质数,则称N为可逆质数.显然一位质数都是可逆质数。
请编一个程序求出大于等于a且小于等于b的所有可逆质数。
【输入文件】:prime.in 中只有一行共两个数即a和b,1<a<b<10000,【输出文件】:prime.out中为指定范围内的所有可逆质数,每个质数占一行,按升序排列【输入样例】5 40【输出样例】571113173137注意:1.逆序数的求法2.求i的逆序数,需备份iOPEN "prime.in" FOR INPUT AS #1OPEN "prime.out" FOR OUTPUT AS #2INPUT #1, m, nFOR i = m TO njs = 0FOR j = 2 TO SQR(i)IF i MOD j = 0 THENjs = js + 1END IFNEXT jt = ik = 0DO WHILE t <> 0k = k * 10 + t MOD 10t = t \ 10LOOPjs1 = 0FOR j = 2 TO SQR(k)IF k MOD j = 0 THENjs1 = js1 + 1END IFNEXT jIF js = 0 AND js1 = 0 AND i <> 1 THENPRINT #2, LTRIM$(STR$(i))END IFNEXT iCLOSEEND机器人的逻辑(LOGIC.BAS)【问题描述】2035年,智能机器人在各行各业中的应用已经十分普遍了,毕竟它做事时的精度与力量比一个普通人是强多了。
王涛的运输队里就有一个,是用来装卸货物的。
这天,他们的任务是要把N(50≤N)根废旧的条形钢材运送到钢铁厂2≤重新冶炼。
这些钢材长短不同(有些还特别的长),为了便于运输,只好把它们切割成小段。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第九届绍兴市少儿信息学竞赛
复赛试题
(2011年6月25日下午1:30-4:00)
一、题目概览
二、提交源程序文件名
三、比赛目录结构示例
选手比赛时,需在本机为每题建立对应的题目目录,目录名称与题目英文名称相同。
选手根据题目要求,将自己提交的源程序,放在该题的题目目录下。
每位选手把自己提交的源程序连同要求的目录结构,存入D盘根目录中。
(只递交源程序,测试时以源程序为准)
例如:假设试卷中有cashier、dune、manhattan三题,选手sx1001使用Pascal答题,其最终提交的文件为cashier.pas、dune.pas、manhattan.pas,则该选手提交的目录结构如下所示:
|---sx1001/
|---cashier/
|---cashier.pas
|---dune/
|---dune.pas
|---manhattan/
|---manhattan.pas
四、特别提醒
比赛开始前应先检查本机能否正常使用,如有问题可向监考老师提出。
比赛结束后应及时离开机房,但注意不要关机。
第一题木材加工( 文件名mcjg.pas )
试题描述:
2049年,智能机器人在各行各业中的应用已经十分普遍了,小明的运输队里就有一个,是专门用来装卸货物的。
这天,他们的任务是要把N(2 <= N <= 50)根木材运送到家具厂去。
这些木材长短不同(有些还特别的长),为了便于运输,只好把它们切割成小段。
所以,小明给机器人的任务是:把这些木材切割并装上卡车。
等机器人做完这事的时候,小明一看结果,大吃一惊:原来装在车上的所有小段的木材,居然长度都是一样的(以米为单位),而且,还是所有可行方案中,切割次数最少的那种方案!
如果告诉你最开始那N根木材的长度,你能算出机器人切割出的小段的长度吗?
输入描述:
输入文件mcjg.in,第一行有一个整数N ,表示原始木材的数量。
第二行中是N个用空格分开的整数,表示每根木材的长度(以米为单位),已知这些整数不小于1,不超过400000。
输出描述:
输出文件mcjg.out,只有一个整数,表示机器人切割出来的每个小段的长度。
输入样例:
4
4 22 8 12
输出样例:
2
第二题螺旋方阵( 文件名Lxfz.pas )
试题描述:
输入一个正整数N(1 <= N <=20)后,可以得到一个N*N的数字螺旋方阵,先分别求出该方阵中的主对角线与副对角线上的数字之和S,P,然后输出S、P 的积。
例如,N=5时得到的数字螺旋方阵如下:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
其中:主对角线从左上角到右下角,得到的数字之和S=1+17+25+21+9=73,副对角线从右上角到左下角,得到的数字之和P=5+19+25+23+13=85.
最后S*P=6205.
输入描述:
输入文件Lxfz.in,只有一行,一个正整数N。
输出描述:
输出文件Lxfz.out,只有一行,一个正整数(表示主对角线与副对角线上的数字之和的积)。
输入样例:
5
输出样例:
6205
第三题懒羊羊吃草( 文件名Lyycc.pas )试题描述:
众所周知,懒羊羊是所有小羊里最贪吃的一只。
然而,鲜为人知的是,懒羊羊也有存储粮食的习惯。
而更让大家吃惊的事实是,我们的懒羊羊做事很有条理,每当他存储一份粮食时,他会专门拿出一个筐来存放。
因此,他的仓库里有很多很多筐的青草。
而我们的懒羊羊又是一个经常馋嘴的小羊,每当他想吃草时,就会从仓库里找出数量最少的一筐草,把它吃掉。
可是懒羊羊因为草吃得太多了导致大脑运转缓慢,所以他不得不向你请求支援,帮他找出他应该吃数量为多少的青草。
输入描述:
输入文件Lyycc.in,第一行为一个正整数n,表示懒羊羊一共进行了n次操作(2<=n<=10000)。
第二行至第n+1行每行表示一个懒羊羊的操作,当这行形式为单独一个字符‘q’时,表示懒羊羊肚子饿了,要吃掉仓库里当前数量最少的那份青草;当这行形式为一个字符‘i’和一个整数k时,表示懒羊羊将一份数量为k(1<=k<=maxlongint)的青草存入了仓库,‘i’和k之间用空格隔开。
输入数据保证每次询问时仓库里都有草可吃且所有操作中懒羊羊至少会吃一次草。
输出描述:
输出文件Lyycc.out,每当输入为‘q’时,输出懒羊羊当前吃掉的那份青草的数量是多少。
输入样例:
5
i 5
i 2
q Array
i 9
q
输出样例:
2
5
第四题 找分数( 文件名zfs.pas )
试题描述:
有一张分数表,其中的每一项是以“Z ”字形先后次序按某种规律形成的,每一项编号和对应的分数如下表和下图所示:
请根据表中规律,对于输入的整数N (1≤N≤20000),输出对应的第N 项分数。
输入描述:
输入文件zfs.in ,只有一行,有一个正整数N 。
输出描述:
输出文件zfs.out ,只有一行,有一个分数,分子和分母间用“/
”号分隔。
输入样例 : 8
输出样例 : 2/3
… 4/1 4/2 … 5/1 … …
1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … 3/1 3/2 3/3 … 4/1 4/2 … 5/1 … …。