宁波市计算机程序设计竞赛2010-2016年复赛后三题
- 格式:docx
- 大小:1.08 MB
- 文档页数:18
宁波市第28届中小学生计算机程序设计竞赛复赛试题(小学组)题目一览关于竞赛中不同语言使用限制的说明一.关于使用Pascal语言与编译结果的说明1.对于Pascal语言的程序,当使用IDE和fpc编译结果不一致时,以fpc的编译结果为准。
2.允许使用数学库(uses math子句),以及ansistring。
但不允许使用编译开关(最后测试时pascal的范围检查开关默认关闭:{$R-,Q-,S-}),也不支持与优化相关的选项。
3.本次比赛允许使用64位整数类型:int64或qword。
1.哈夫曼编码(coding)题目描述哈夫曼编码是一种编码方式,是可变字长编码的一种,由Huffman 于1952 年提出。
该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫Huffman 编码。
简单地来说,就是出现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从而达到无损压缩数据的目的。
现在请你模拟这样的原则对给定的一个字符串进行字母统计。
输入输入文件coding.in,只有一行,是一个字符串,由小写英文字母组成,长度不超过255 个字符。
输出输出文件coding.out,有若干行,每行有两部分组成:一个字母和该字母出现的频率,中间用一个空格分隔,并按频率高低排列,频率相同时则按字母的ASC 码的先后顺序排列。
样例输入soon样例输出o 2n 1s 12. 立方和(cubsum)题目描述现给出一个三位数,先对这个三位数的各位数字的立方求和,然后再对求出的和中的各位数字的立方求和,如此一直继续下去,判断最后能否得到一个不再变化的固定值。
如能得到一个固定值,就求出这个固定值;如果不能,则输出提示信息“error” 。
另外请注意,在求解过程中,若某一次求和过程中得到的值超过三位数,则取该数的低三位继续往下运算……例如,对于三位数111,则第一次计算应是1×1×1+1×1×1+1×1×1=3,第二次计算应是0×0×0+0×0×0+3×3×3=27,第三次计算应是0×0×0+2×2×2+7×7×7=351,第四次计算应是3×3×3+5×5×5+1×1×1=153,第五次计算应是1×1×1+5×5×5+3×3×3=153,与第四次计算的结果相同,这时可不再计算,输出固定值153。
宁波市第29届中小学生程序设计竞赛复赛试题(初中组)解题报告第一题战马列队题意不难理解,因为n<=1000,我们可以枚举将战马替换后,最后一匹白马在队列中的位置,这样只需统计这匹马之前(包括这匹马)棕马的数量s1,这匹马之后(不包括这匹马)白马的数量s2,将它们替换就能达到我们需要的队列,那么以这个位置作为最后一匹白马的答案就是替换的马匹数即ans=s1+s2。
最终答案即为所有ans中的最小值。
别忘了n<=1000,string存不下,要用ansistring。
代码如下:vars:ansistring;i,j,n,ans,cnt:integer;beginreadln(n);readln(s);ans:=n;for i:=1 to n do begin // i即为枚举的最后一匹白马的位置cnt:=0;for j:=1 to i doif s[j]='B' then inc(cnt);for j:=i+1 to n doif s[j]='W' then inc(cnt);if ans>cnt then ans:=cnt;end;writeln(ans);end.第二题马农这道题首先需要一个常用的小技巧,我们开一个二维数组s[i,j],表示左上角为(1,1),右下角为(i,j)的子矩形中所有数字的和,我们可以用一个递推公式快速求出s数组,即s[i,j] = s[i-1,j]+s[i,j-1]-s[i-1,j-1]+a[i,j] ,其中a[i,j] 表示(i,j)这个格子上的数字。
那么求出s数组有什么用呢?利用s数组,可以迅速求出左上角为(x,y),右下角为(z,u)的子矩形中所有数字的和,公式为ans=s[z,u]-s[z,y-1]-s[x-1,u]+s[x-1,y-1]。
其实上述技巧,在前几年的宁波赛中出现过,即为小学组的题目《方格稿纸》,当然我们是初中组,自然难度要比小学组大,了解上述小技巧后,我们开始来解决这道题目。
宁波市第31届中⼩学⽣计算机程序设计竞赛复赛试题宁波市第31届中⼩学⽣计算机程序设计竞赛复赛试题(⼩学组)⽐赛时间:2016年3⽉27⽇下午13:30-16:00⼀、题⽬⼀览试题名称平均值拨算盘找画笔射击英⽂代号 average suanpan findbrush shooting 程序名 average.pas/c/cpp suanpan.pas/c/cpp findbrush.pas/c/cpp shooting.pas/c/cpp输⼊⽂件名 average.in suanpan.in findbrush.in shooting.in 输出⽂件名 average.out suanpan.out findbrush.out shooting.out 内存限制 128MB 128MB 128MB 128MB 时限 1S 1S 1S 1S 分值100100100100结果⽐较⽅式全⽂⽐较(过滤⾏末空格及⽂件尾的空⾏)⼆、提交源程序⽂件名对于pascal 语⾔ average .pas suanpan .pas findbrush .pas shooting .pas 对于C 语⾔ average .c suanpan .c findbrush .c shooting .c 对于C++语⾔average .cppsuanpan .cppfindbrush .cppshooting .cpp三、编译命令(不包含任何优化开关)四、注意事项1、⽂件名(程序名和输⼊输出⽂件名)必须使⽤⼩写。
2、 C/C++中函数main()的返回值类型必须是int ,程序正常结束时的返回值必须是0。
3、评测环境为windows4、关于竞赛中编程语⾔使⽤的其他规定参照中国计算机学会公布的《关于NOI 系列赛编程语⾔使⽤限制的规定》对于pascal 语⾔ fpc average .pas fpc suanpan .pas fpc findbrush .pas fpc shooting .pas 对于C 语⾔gcc -o average average.c -lm gcc -o suanpan suanpan .c -lm gcc -o findbrush findbrush .c -lm gcc -o shooting shooting .c -lm 对于C++语⾔ g++ -o average average.cpp -lmg++ -o suanpan suanpan .cpp -lmg++ -o findbrush findbrush .cpp -lmg++ -o shooting shooting .cpp -lm第⼀题、平均值(average.pas/c/cpp)【问题描述】⾖⾖从⼩对数字很敏感,⼩学⾥就显露出超常的能⼒,⽼师为了防⽌他太过骄傲,给了他⼀个可怕的难题:求⼀串给定整数某⼀段的平均值,保留3位⼩数。
2016鄞州区小学生程序设计竞赛解答锯木棍小明捡到了m根细木棍,碰巧他有一把锯子,每次他都从木棍堆中拿出一根将其锯成两段,放回木棍堆中,他想知道锯子使用n次后,木棍堆里总共有几根木棍?输入两个非负整数m,n输出一个整数,表示最后木棍总数输入2 1输出360% n<231100% n<10100解答:小明每次将一根木棍锯成两段,相当于将这根木棍拆分成了两个新的木棍,因此,每次操作后木棍的数量会增加1。
所以,如果小明使用了n次锯子,那么木棍的数量就会增加n次,最终的木棍总数就是 m+n。
因此,只需要将输入的两个数相加,即可得到最终的木棍总数。
具体的代码实现如下:pythonCopy codem, n = map(int, input().split())total = m + nprint(total)对于输入数据,由于 n 的范围非常大,因此在实现时需要使用高精度计算。
但是,由于这道题只需要输出最终的木棍总数,因此可以使用 Python 自带的高精度计算库进行计算,不需要自己实现高精度加法。
数字小明对数字有强烈的兴趣,总想探究一些性质。
今天,他在考虑数字的前缀能否被一些特定的数整除。
数字的前缀,就是从最高位开始到数字中任意一位所得到的一个数字。
例如56789的全部前缀就是5,56,567,5678,56789。
那些特定的数只可能是2,3,4中的一个。
小明会告诉你数字n和特定的数m,希望你能帮他计算出有几个n的前缀能被m整除。
输入两个整数n,m (m是2,3,4中的一个)输出一个整数,表示能被m整除的n的前缀个数。
输入56789 2输出2要求30% n<26360% n<101000100% n<10200000解答:具体的实现方法是,先将 n 转换为字符串,然后从字符串的最高位开始,用一个变量 remainder 表示当前的余数,用一个列表 quotient 表示每一位的商,初始值都为 0。
宁波市第24届中小学生计算机程序设计竞赛复赛试题(小学组)题目一览关于竞赛中不同语言使用限制的说明一.关于使用Pascal语言与编译结果的说明1.对于Pascal语言的程序,当使用IDE和fpc编译结果不一致时,以fpc的编译结果为准。
2.允许使用数学库(uses math子句),以及ansistring。
但不允许使用编译开关(最后测试时pascal的范围检查开关默认关闭:{$R-,Q-,S-}),也不支持与优化相关的选项。
3.本次比赛允许使用64位整数类型:int64或qword。
1.甜蜜的烦恼(space)题目描述【问题描述】最近珍珍学会了使用电脑,她发现可以利用电脑解决很多事情,并且效率会快许多。
比如,在一份名单中找某个人的姓名,在以前,她得依次逐个查找,速度慢又很容易看错。
现在,她使用菜单命令:“编辑”-“查找”(或按Ctrl+F键),在弹出的查找对话框中,输入要查找的姓名,电脑就会找到要找的姓名或告诉你不存在你要找的姓名了。
真是又快又准,太爽了!今天珍珍在查找时,输入“张明”,电脑告诉她不存在,但她不经意间发现“张明”是有的!原来,提供原始名单的人,为了格式漂亮在中间输入了一个空格,因此电脑找不到了。
她想这容易解决,继续查找“李达”,没有?查找“李达”(中间一个空格),还没有?原来某些姓名中间的空格数是有多个的!珍珍想删除所有姓名中间的空格,但由于名单很多,一个一个删除太慢了,所以她找到了会编程解决问题的你,请你写一个程序,删除所有名单中间的空格。
输入【输入】输入文件space.in的第一行只有一个正整数n,表示名单中共有n个人的姓名。
第二行至第n+1行共n行,每行是一个人的姓名(由大小写英文字母以及字母之间的空格组成)。
输出【输出】输出文件space.out有n+1行,第一行只有一个正整数,表示总共删除的空格数。
第二行至第n+1行共n行,每行表示一个删除空格后的姓名(按照输入姓名的次序)。
宁波市第31届中小学生程序设计竞赛复赛试题(初中组)比赛时间:2016年3月27日上午9:00-12:00(请选手务必仔细阅读本页内容)五.注意事项1、文件名(程序名和输入输出文件名)必须使用小写。
2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
3、C语言64位整型输入输出格式请用%I64d(有符号)或者%I64u(无符号)。
4、没有其他特殊情况说明时,输入输出中任意两个整数之间用一个空格分隔。
1.猴子吃桃(eat.pas/c/cpp)【问题描述】为庆祝今年桃子丰收,猴村的猴子们举办了一次有趣的换桃子吃的游戏。
n只猴子(编号为1到n)从左向右站成一排,每只猴子手上捧着某种口味的一个桃子(桃子的口味用一个小写字母表示,最多26种口味),但是猴子手上的桃子可能不是自己喜欢吃的口味。
换桃过程共进行m轮,第i(1≤i≤m)轮交换给出三个整数L i,R i(1≤L i≤R i≤n)和C i,表示第i轮交换共进行C i遍,每一遍从第L i只猴子开始依次向右边的猴子传递自己手上的桃子,即第L i只猴子传递给第L i+1只猴子,……,第R i - 1只猴子传递给第R i只猴子,第R i只猴子的桃子传递给第L i只猴子。
请编程计算依次经过m轮传递后,有多少只猴子手上桃子的口味是与自己喜欢的口味相同?。
【输入】输入共m+4行。
第1行一个整数n,表示猴子的数目。
第2行n个小写字母,依次表示第1只猴子到第n只猴子手上捧着的桃子口味。
第3行n个小写字母,依次表示第1只猴子到第n只猴子喜欢吃的桃子口味。
第4行一个整数m,表示共进行m轮交换操作。
接下来m行,第i+4行三个整数L i,R i和C i,表示第i轮交换共进行C i遍,每一遍从第L i只猴子开始依次向右边的猴子传递桃子,第R i只猴子的桃子传递给第L i只猴子。
【输出】输出一行,一个整数,表示依次经过m轮交换后,手上桃子的口味与自己喜欢的口味相同的猴子数量。
宁波市第27届中小学生计算机程序设计竞赛复赛试题(小学组)题目一览一.关于使用Pascal语言与编译结果的说明1.对于Pascal语言的程序,当使用IDE和fpc编译结果不一致时,以fpc的编译结果为准。
2.允许使用数学库(usesmath子句),以及ansistring。
但不允许使用编译开关(最后测试时pascal的范围检查开关默认关闭:{$R-,Q-,S-}),也不支持与优化相关的选项。
3.本次比赛允许使用64位整数类型:int64或qword。
傻瓜电梯(dianti)题目描述所谓傻瓜电梯指的是在响应用户请求时缺乏相应的“智商”,在上升或下降的过程中不能把中途的乘客捎带入电梯,而只会严格按照用户发出请求的先后顺序依次完成任务。
比如,原来电梯在1楼,首先6楼有一位乘客发出请求,要求由6楼乘坐到10楼去,此时电梯马上会上去,但在电梯上升到3楼时,另外一位乘客请求由5楼乘坐到8楼去,傻瓜电梯却不会在上升途中把5楼的乘客捎带上去,而只会先把6楼的乘客送到10楼,然后再下来把5搂的乘客送到8楼。
傻瓜电梯由i楼上升到i+1楼(或下降到i-1楼)的时间都是3秒,每到达一个楼层,不管进出乘客有多少,也不管乘客只有进、只有出或者进出电梯都有,所耽搁的时间都是6秒。
现在味味要根据傻瓜电梯接受到的n个用户请求,编程计算傻瓜电梯把所有乘客送到目标楼层时总共所需要的时间。
如果某批乘客到达目标楼层后,电梯没有马上要响应的请求,则电梯在前一批乘客的目的地等待,这个等待时间也需计入总花费时间。
直到下一批乘客发出新请求,电梯才会从当前位置出发,前往下一批乘客的出发楼层。
输入输入文件dianti.in第一行包含两个整数x(1<=x<=100)和n(1<=n<=100)分别表示傻瓜电梯开始所在的楼层和总共接收到的请求数目。
下面有n行,每行包含3个整数,依次表示该请求发出的时间、乘客目前所在的楼层和将要去的目标楼层。
市第20届小学生计算机程序设计初赛试题〔说明:考试时间90分钟,总分为120分〕一、选择题(每一小题2分,共40分)如下各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项写在答题卷相应位置上,答在试卷上不得分。
1、一个完整的计算机系统应包括____。
A 主机,键盘和显示器B 计算机与其外部设备C 系统硬件和系统软件D 硬件系统和软件系统2、十进制数2005转换为二进制,结果是〔〕。
A、 B、 C、 D、3、如下电子地址,正确的答案是( )。
A johnhotmail.B caiC 162.105.111.22D .sohu.4、彩色显示器所显示的五彩斑斓的色彩,是由红色,蓝色和〔〕色混合而成的A、紫色B、白色C、黑色D、绿色E、橙色5、目前世界上计算机的工作原理是________,它来源于________提出的________原理。
A、存储程序和程序控制、。
诺依曼、程序设计B、存储程序控制、。
诺依曼、存储程序和程序控制C、存储程序、Taring、程序控制D、存储程序控制、Turing、程序设计6、关于计算机病毒,如下说确的是〔〕A、病毒是由软盘外表粘有灰尘造成的B、病毒常隐藏在数据文件或系统中,具有隐蔽性和潜伏性C、大局部病毒不具有传染性和破坏性D、病毒会对计算机造成轻或重的损害,但制造病毒的人并不构成犯罪7、计算机网络的目标是实现〔〕。
A、数据处理B、文献检索C、资源共享和信息传输D、信息传输8、目前比拟流行的网络编程语言是 ( )A、 JavaB、FoxPrlC、PascalD、C9、根据域名代码规定,域名为表示的类别应是〔〕。
A、教育机构B、军事部门C、商业组织D、非营利组织10、计算机的硬件系统包括〔〕。
A、运算器、控制器、存储器、输入设备、输出设备B、控制器、运算器、输入和输出设备C、中央处理器、输入和输出设备D、主机和键盘、显示器11、算法是指〔〕A、为解决问题而编制的计算机程序B、为解决问题而采取的方法与步骤C、为解决问题需要而采用的计算机编程语言D、为解决问题而采用的计算方法12、Internet上访问Web信息时用的工具是浏览器。
2010年宁波市第25届中小学生程序设计竞赛小学组初赛试题一、选择题(每题2分,共30分。
每小题只有唯一一个正确答案)1、在宁波市中小学生程序设计比赛复赛(上机编程)时,以下不能使用的编程语言是:(A)Turbo Pascal (B)Free Pascal (C)C (D)C++2、在Free Pascal中按功能键F7或F4时,以下叙述正确的是:(A)F4逐条语句执行(包括子程序),F7运行至光标位置(B)F7逐条语句执行(包括子程序),F4运行至光标位置(C)F4逐条语句执行(不包括子程序),F7运行至光标位置(D)F7逐条语句执行(不包括子程序),F4运行至光标位置3、使用高级语言编写的程序称之为:(A)源程序(B)编辑程序(C)编译程序(D)链接程序4、如果自己的程序进入了死循环,应当按什么键终止?(A)Ctrl+C (B)Ctrl+D (C)Alt+C (D)Alt+D5、参加宁波市中小学生程序设计比赛复赛(上机编程)时,以下哪种行为是允许的?(A)访问互联网或局域网(B)使用U盘或光盘(C)使用自带的草稿纸(D)考试时发现机器有问题,举手示意监考人员处理6、参加宁波市中小学生程序设计比赛复赛(上机编程)时,你有一个程序被判0分。
你发现程序其实是正确的,但存在以下问题,提出申诉,以下哪个申诉会被接受?(A)源程序文件名和存放源程序的目录名错误(B)只是存放源程序的目录名错误,源程序文件名是正确的(C)存放源程序的目录名正确,源程序文件名是错误的(D)根据比赛规则,以上申斥都不会被接受7、在Free Pascal语言,以下关于各种数据类型占内存空间大小的描述错误的是:(A)每个intege型占2个字节(B)每个longint型占4个字节(C)每个boolean型占2个字节(D)每个extended型占10个字节8、关键码相同的二个元素,原来在排在前面的还能保证排在前面,这种排序算法我们称它是稳定的。
2010-2016后三题31届201630届201529届2014马农题目描述兄弟两回到草原,将可以养马的区域,分为N*N的单位面积的正方形,并实地进行考察,归纳出了每个单位面积可以养马所获得的收益。
接下来就要开始规划他们各自的马场了。
首先,两人的马场都必须是矩形区域。
同时,为了方便两人互相照应,也为了防止马匹互相走散,规定两个马场的矩形区域相邻,且只有一个交点。
最后,互不认输的两人希望两个马场的收益相当,这样才不会影响他们兄弟的感情。
现在,兄弟两找到你这位设计师,希望你给他们设计马场,问共有多少种设计方案输入格式:第一行一个整数N,表示整个草原的大小为N*N。
接下来N行,每行N个整数A(i,j),表示第i行第j列的单位草地的收成。
(注意:收益可能是负数,养马也不是包赚的,马匹也可能出现生病死亡等意外。
)输出格式:输出符合两人要求的草原分配方案数。
输入样例#1:31 2 34 5 67 8 9输出样例#1:2N<=50,-1000<A(I,J)<100028届2013分数统计【题目描述】在统计完朋友情况之后,小明又对大家的毕业学校产生兴趣,但是他觉得单纯的统计人数是一件非常无聊的事情,于是他设计了一个算法,同一所学校毕业的学生,第1个将获得1分,第2个获得2分,第3个获得4分…,第i个将获得2 i-1 分,总分就是这所小学的得分,小明想知道得分最高的学校有多少分。
【输入】输入文件 score .in的第一行有两个整数n和m,n表示总人数,m表示已知的同校关系数量。
接下来n行,每行有2个以空格隔开的整数a和b,表示a和b是来自同一所学校,a和b 均为1到n之间的整数。
不会给出重复的信息。
【输出】输出文件 score .out 只有一行,为所有学校中的最高得分。
最后得分可能会很大,你只需要输出后 100 位即可,不足 100 位的请直接输出。
【样例输入】5 31 23 41 3【样例输出】15【样例说明】1、2、3、4来自同一所学校,该所学校所得的分数为1+2+4+8=15【数据规模】60%的数据,1 <= n <= 1080%的数据,1 <= n <= 70100%的数据,1 <= n <= 10000,1 <= m <= 100000跳棋【题目描述】小明迷恋上了一个新的跳棋游戏,游戏规则如下:棋盘是一排从0开始,顺序编号的格子,游戏开始时你位于0号格子,你每次只能往编号大的格子跳,而且你每次至少需要跳过L个格子,至多只能跳过R个格子。
每个格子都有一个给定的伤害值,显然你希望得到的伤害值越少越好。
你能告诉小明他当他跳到最后一个格子时受到的累积伤害值最小为多少吗?如果无论如何小明都无法跳到最后一个格子,这个时候你需要输出”-1”。
注:从i号格子跳过x个格子表示从i号格子跳到第i+x+1号格子。
【输入】输入文件jump.in第一行有三个整数n、L和R,n表示格子的编号从0到n。
L和R表示最少需要跳过的格子数和最多能够跳过的格子数。
第二行有n个正整数,两个数字间用空格隔开,表示每个格子的伤害值。
【输出】输出文件jump.out仅有一个整数,表示受到的最小伤害值,保证结果小于maxlongint。
【样例输入】10 2 6135****6810【样例输出】12【样例说明】【数据规模】50%的数据,1 <= n <= 100065%的数据,1 <= n <= 10000100%的数据,1 <= n <= 1000000,1 <= L <= R <= n其中有15%的数据,1 <= n <= 1000000,1 <= L <= R <= 10迷宫大门【题目描述】在跳棋游戏大获全胜后,小明就开始一个人在校园里溜达了。
突然他在校园角落里发现了一面神奇的墙壁,墙壁上有一排钉子,每个钉子上都挂着一根两端系有小球的绳子,如下图所示小明可以调整每一根绳子在钉子左右两端的长度,当来自不同绳子的相邻小球高度一样时(具体可见样例说明),便可获得积分1分。
当小明的方案获得最高积分时,迷宫大门就会开启,小明就可以进去寻找宝藏啦!【输入】输入文件door.in第一行为一个正整数n,表示墙上的绳子数。
接下来n行,每行2个整数a和b,表示绳子左右两端的初始长度。
【输出】输出文件 door.out 仅有一个正整数,表示小明可以获得的最高积分。
【样例输入】【样例说明】31 13 21 4【样例输出】2【数据规模】27届2012无根树【问题描述】味味最近对树很感兴趣,什么是树呢?树就是有n 个点和n-1条边形成的无环连通无向图。
今年2012年浙江省队选拔赛中味味发现了一个树中最长链(就是树当中距离最远的点对)试题,于是她着手对树进行了一些研究和思考。
味味在研究过程中想知道,对于一个无根树,当节点i 作为根的时候树的高是多少。
所谓树高指的是从根节点出发,到离根节点最远叶子节点所经过的节点的总数,详见输入输出样例1。
味味现在遇到了一些烦心的事情,不想再继续思考了,请你帮助她解决这个问题。
【输入】输入文件名为 tree.in ,共 N 行。
第一行为一个正整数 N ,表示树的节点个数。
第2行到第 N 行里,每行两个用空格隔开的正整数a 和b ,表示a 与b 有连边。
【输出】输出文件 tree.out 共N 行,第i 行表示以节点i 为根时的树高。
节点1为根时,树的形态如下,此时树高为3。
节点2为根时,树的形态如下,此时树高为2。
节点3为根时树的形态同于节点1为根情形。
【数据范围】对于30%的数据有N≤100。
对于60%的数据有N≤300。
对于100%的数据有1≤N≤1000,1≤a,b≤N积木【问题描述】味味有一个A×B×C的长方体积木,积木是有1×1×1的小积木块组成的。
我们设定这个长方体的高为A,宽为B,长为C。
(为方便起见,长方体的长不一定要比宽的数值大)。
现在味味在这个长方体中的的左上角挖去了一个(A-1)×(B-2)×(C-2)的小长方体。
并且告诉你被挖去长方体的体积为n,即n=(A-1)×(B-2)×(C-2)。
现在问你,被挖去小长方体后,原有长方体积木中剩下的1×1×1的小积木块最少和最多分别是多少个。
也就是说,在告诉你n值的前提下,求min{A×B×C-n}和max{A×B×C-n}。
【输入】输入文件名为block.in。
输入共1行,仅一个正整数n。
【输出】输出文件名为block.out。
输出共1行包含两个用空格隔开的正整数,依次表示最少剩余小积木块和最多剩余小积木块个数。
样例1说明:4=(2-1)×(4-2)×(4-2) 最少剩余的小积木块为2×4×4-4=28(此时A,B,C值分别为2,4,4)4=(5-1)×(3-2)×(3-2) 最多剩余的小积木块为5×3×3-4=41(此时A,B,C值分别为5,3,3)【输入输出样例2】对于20%的数据1 ≤n≤400对于50%的数据1 ≤n≤610对于100%的数据1 ≤n≤910幸运数【问题描述】4和7是味味的幸运数字。
幸运数是那些只由幸运数字组成的正整数。
如47,477是幸运数,而5,17,417就不是幸运数。
定义next(x)为大于或等于x的最小的幸运数。
味味对以下表达式的值很感兴趣:next(L)+next(L+1)+...+next(R-1)+next(R)。
现在告诉你L和R的值,希望你能帮助味味计算出这个表达式的值。
【输入】输入文件sum.in仅一行包含两个正整数L和R(1≤L≤R≤910),L和R的值之间用一个空格分隔。
【输出】输出文件sum.out只有一行一个整数,表示表达式的值。
【输入输出样例1】【样例1 说明】next(2)+next(3)+next(4)+next(5)+next(6)+next(7)=4+4+4+7+7+7=33【样例2 说明】next(7)=7【数据范围】对于20%的数据,1≤L≤R≤1000对于40%的数据,1≤L≤R≤610另有20%的数据,L=R10对于100%的数据,1≤L≤R≤926届2011牛人(niuren)【题目描述】现在有n个人,每个人都有一个智力值和能力值。
对于某一个人A来说,如果其它n-1个人中,没有人的智力值和能力值都比A高,则我们称A为“牛人”。
反过来说,只要有一个人的智力值和能力值都比A高,则A就不是“牛人”了。
请统计共有多少个“牛人”。
【输入】输入文件niuren.in的第一行只有一个整数n。
第二行,有n个以空格分隔的正整数,第i个正整数表示第i个人的智力值。
第三行,有n个以空格分隔的正整数,第i个正整数表示第i个人的能力值。
【输出】输出文件niuren.out中仅有一行,该行只有一个整数,表示求得的“牛人”数。
【样例输入】525 40 30 20 5 20 10 25 38 5【样例输出】3【样例说明】第1人不是牛人,因为第3人的智力值和能力值都比第1人高;第2人是牛人,因为其它4人的智力值都不如第2人;第3人是牛人,因为第1、4、5三人的智力值都不如第3人,第2人的能力值不如第3人;第4人是牛人,因为其它四人的能力值都不如第4人;第5人不是牛人,因为其它四人的智力值和能力值都比第5人高;【数据说明】70%的数据,1≤n≤1000。
100%的数据,1≤n≤100000,所有人的智力值和工作能力值均不超过5000000000。
演出队列(queue)【题目描述】今年是镇海中学的百年校庆。
校庆演出时,导演需要一列连续的身高递增的学生来演出一个节目。
现在有一列连续排列的学生,可以从这些学生中筛选掉最多一段连续的几个学生。
然后从剩下的学生中,选出连续的若干个,这些学生的身高依次连续递增。
求可以得到的身高连续递增队列的最大长度?。
【输入】输入文件queue.in的第一行只有一个整数n。
第二行有n个正整数(互相之间以一个空格分隔),表示连续排列的每个学生的身高。
【输出】输出文件queue.out中仅有一行,该行只有一个整数,表示符合要求的最长队列的长度。
【样例输入1】13176 171 172 173 179 177 178 175 176 177 170 178 179【样例输出1】6【样例说明1】筛选掉第5、6、7三个(179 177 178)后,得到长度最长的连续递增序列:171 172 173 175 176 177【样例输入2】10176 175 171 172 173 175 176 170 168 158【样例输出2】5【样例说明2】长度最长的连续递增序列为第3-7个:171 172 173 175 176【数据说明】30%的数据n≤2070%的数据n≤200100%的数据n≤5000,高度不超过109。