资源简介 2000年全国青少年信息学(计算机)奥林匹克分区联赛复赛试题(初中组 竞赛用时:3小时)题一: 计算器的改良(18分) 问题描述:NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能。实验室将这个任务交给了一个刚进入的新手ZL先生。为了很好的完成这个任务,ZL先生首先研究了一些一元一次方程的实例:4+3x=86a-5+1=2-2a-5+12Y=0ZL先生被主管告之,在计算器上键入的一个一元一次方程中,只包含整数、小写字母及十、一、=这三个数学符号(当然,符号“一”既可作减号,也可作负号)。方程中并没有括号,也没有除号,方程中的字母表示未知数。问题求解:编写程序,解输入的一元一次方程,将解方程的结果(精确至小数点后三位)输出至屏幕。你可假设对键入的方程的正确性的判断是由另一个程序员在做,或者说可认为键入的一元一次方程均为合法的,且有唯一实数解。样例输入:6a-5+1=2-2a输出:a=0.750 题二:税收与补贴问题(20分) 问题描述:每样商品的价格越低,其销量就会相应增大。现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位间销量的变化是线性的且在价格高于给定的最高价位后,销量以某固定数值递减。(我们假设价格及销售量都是整数) 对于某些特殊商品,不可能完全由市场去调节其价格。这时候就需要政府以税收或补贴的方式来控制。(所谓税收或补贴就是对于每个产品收取或给予生产厂家固定金额的货币)问题求解: 你是某家咨询公司的项目经理,现在你已经知道政府对某种商品的预期价格,以及在各种价位上的销售情况。要求你确定政府对此商品是应收税还是补贴的最少金额(也为整数),才能使商家在这样一种政府预期的价格上,获取相对其他价位上的最大总利润。 总利润=单位商品利润*销量单位商品利润=单位商品价格-单位商品成本(-税金 or +补贴) 输入:输入的第一行为政府对某种商品的预期价,第二行有两个整数,第一个整数为商品成本,第二个整数为以成本价销售时的销售量,以下若干行每行都有两个整数,第一个为某价位时的单价,第二个为此时的销量,以一行-1,-1表示所有已知价位及对应的销量输入完毕,输入的最后一行为一个单独的整数表示在已知的最高单价外每升高一块钱将减少的销量。 输出:输出有两种情况:若在政府预期价上能得到最大总利润,则输出一个单独的整数,数的正负表示是补贴还是收税,数的大小表示补贴或收税的金额最小值。若有多解,取绝对值最小的输出。如在政府预期价上不能得到最大总利润,则输出“NO SOLUTION” .样例:输入:3128 13030 12031 110-1 -115 输出:4 题三:乘积最大 (26分) 问题描述:今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目:设有一个长度N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子:有一个数字串: 312,当N=3,K=1时会有以下两种分法:1)3*12=362)31*2=62这时,符合题目要求的结果是: 31*2=62现在,请你帮助你的好朋友XZ设计一个程序,求得正确的答案。输入:程序的输入共有两行:第一行共有2个自然数N,K (6<=N<=40,1<=K<=6)第二行是一个K度为N的数字串。输出:结果显示在屏幕上,相对于输入,应输出所求得的最大乘积(一个自然数)。样例:输入4 21231输出62 题四:单词接龙 (36分) 问题描述:单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们己知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙" 中出现两次),在两个单词相连时,其重合部分合为一部分,例如beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at和atide间不能相连。输入:输入的第一行为一个单独的整数n(n<=20)表示单词数,以下n行每行有一个单词,输入的最后一行为一个单个字符,表来“龙”开头的字母。你可以假定以此字母开头的“龙"一定存在。输出:只需输出以此字母开头的最长的“龙”的长度样例:输入5attouchcheatchoosetacta输出23 (连成的“龙”为atoucheatactactouchoose) 2000年复赛普及组测试数据第一题:计算器的改良20+3x=-18-6+12x=047-2=6y+3-25a+18-2=-7a-2-a+1a-3=a-3第二题:税收与补贴问题,输入见21.in-24.in第三题:乘积最大******测试点1******6 1101010******测试点2******9 4321044105******测试点3******8 322222222******测试点4******10 57777777777第四题:单词接龙,见41.in-46.in2000年复赛提高组测试数据第一题:进制转换27993 -8-37336 -16-569 -2-304 -20683 -2第二题:乘积最大******测试点1******6 1101010******测试点2******9 4321044105******测试点3******8 322222222******测试点4******10 57777777777第三题:单词接龙,输入见31.in-36.in第四题:方格取数:输入见41.in-45.in2000年全国青少年信息学(计算机)奥林匹克分区联赛复赛试题(高中组 竞赛用时:3小时)题一 进制转换 (18分) 问题描述:我们可以用这样的方式来表示一个十进制数:将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式。例如,123可表示为1*10^2+2*10^1+3*10^0这样的形式。与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的(值-1)为指数,以2为底数的幂之和的形式。一般说来,任何一个正整数R或一个负整数-R都可以被选来作为一个数制系统的基数。如果是以R或-R为基数,则需要用到的数码为0,1,....R-1。例如,当R=7时,所需用到的数码是0,1,2,3,4,5和6,这与其是R或-R无关。如果作为基数的数绝对值超过10,则为了表示这些数码,通常使用英文字母来表示那些大于9的数码。例如对16进制数来说,用A表示10,用B表示11,用C表示12,用D表示13,用E表示14,用F表示15。在负进制数中是用-R作为基数,例如-15(+进制)相当于110001(-2进制),并且它可以被表示为2的幂级数的和数:110001=1*(-2)^5+1*(-2)^4+0*(-2)^3+0*(-2)^2+0*(-2)^1+1*(-2)^0问题求解:设计一个程序,读入一个十进制数的基数和一个负进制数的基数,并将此十进制数转换为此负进制下的数:-R∈{-2,-3,-4,....-20} 输入:输入的每行有两个输入数据。第一个是十进制数N(-32768<=N<=32767); 第二个是负进制数的基数-R。输出:结果显示在屏幕上,相对于输入,应输出此负进制数及其基数,若此基数超过10,则参照16进制的方式处理。样例:输入30000 -2-20000 -228800 -16-25000 -16输出30000=11011010101110000(base -2)-20000=1111011000100000(base -2)28800=19180(base -16)-25000=7FB8(base -16) 题二 乘积最大 (22分) 问题描述:今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目:设有一个长度N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子:有一个数字串: 312,当N=3,K=1时会有以下两种分法:1)3*12=362)31*2=62这时,符合题目要求的结果是: 31*2=62现在,请你帮助你的好朋友XZ设计一个程序,求得正确的答案。输入:程序的输入共有两行:第一行共有2个自然数N,K (6<=N<=40,1<=K<=6)第二行是一个K度为N的数字串。输出:结果显示在屏幕上,相对于输入,应输出所求得的最大乘积(一个自然数)。样例:输入4 21231输出62 题三 单词接龙 (27分) 问题描述:单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们己知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙" 中出现两次),在两个单词相连时,其重合部分合为一部分,例如beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at和atide间不能相连。输入:输入的第一行为一个单独的整数n(n<=20)表示单词数,以下n行每行有一个单词,输入的最后一行为一个单个字符,表来“龙”开头的字母。你可以假定以此字母开头的“龙"一定存在。输出:只需输出以此字母开头的最长的“龙”的长度样例:输入5attouchcheatchoosetacta输出23 (连成的“龙”为atoucheatactactouchoose) 题四 方格取数 (33分) 问题描述:设有N*N的方格图(N<=8),我们将其中的某些方格中填入正整数,而其他的方格中则放人数字0。如下图所示(见样例 ,黄色和蓝色分别为两次走的路线,其中绿色的格子为黄色和蓝色共同走过的):A 13 6 7 14 21 4 15 14 B某人从图的左上角的A点出发,可以向下行走,也可以向右走,直到到达右下角的B 点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。此人从A点到B点共走两次,试找出2条这样的路径,使得取得的数之和为最大。输入:输入的第一行为一个整数N(表示N*N的方格图),接下来的每行有三个整数,前两个表示位置,第三个数为该位置上所放的数。一行单独的0表示输入结束。输出:只需输出一个整数,表示2条路径上取得的最大的和。样例:输入82 3 132 6 63 5 74 4 145 2 215 6 46 3 157 2 140 0 0输出67 展开更多...... 收起↑ 资源列表 2000fu_pu.doc 2000fu_pu_key.doc 2000fu_ti.doc 2000fu_ti_key.doc