正文

厦门大学2005年第二届程序设计大赛题目2005-06-24 17:35:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xiangyu/2089.html

分享到:

规则: 1.赛题共五题,参赛者做出的题数将是作品评分的一个重要依据。 2.比赛作品平台不限,语言不限(推荐标准C/C++),程序占用的内存不限(只要不是太离谱),程序运行的时间不限(同样不要太离谱),但是程序编写的质量会对最后的评分有一定的影响. 3.请尽量严格按照输入输出的定义编写输入输出接口,方便多组测试样例的数据测试.当然,如果仅仅输入输出格式有问题而算法正确的程序,也同样可以得分. 4.本次比赛的目的主要是问题的分析解决,程序设计和算法设计能力,故将所有结果直接输出而没有算法分析过程的程序,就算能通过测试样例,将也一样无效. 5.理论上允许参赛者对同一份题目提供多份程序,我们可以从中帮你选出最好的,但是请尽量自行挑选一份最好的提交.请提交的时候尽量将代码整理并注释好,并提交相关设计文档. 6.虽然没有在线测试提交系统,但是由于时间上较为充分,请自行考虑编写各种情况下的测试用例,以提高你程序的准确率. 7.请独自完成,严禁代码重复,严禁相互讨论,尊重对手,也是尊重自己. 8.如对赛题有疑惑可以发邮件至: emoon11@sohu.com 征询许鹏展同学,他将热情地解答你提出的问题。 题目: 1.    取胜之道 Program国度的人,喜欢玩这样一个游戏,在一块板上写着一行数,共n个。两个游戏者,轮流从最右或最左取一个数。刚开始,每个游戏者的得分均为零。如果一个游戏者取下一个数,则将该数的值加到该游戏者的得分上,最后谁的得分最高谁就赢了游戏。给出这n个数( 从左往右), 假设游戏者都是非常聪明的,问最后两个人的得分(假设第一个人首先取数). 输入格式:第一行为n(2<=n<=100),第二行为n个数,每个数字之间均用空格隔开。输出为两个游戏者的得分.第一个数表示第一个游戏者的得分,第二个数为第二个游戏者的得分,两个数字之间用空格隔开。 如输入 6 4 7 2 9 5 2 输出 18 11 2.    分数与小数 将分数转化为小数,相信很多人都会吧.那么,这里给定一个分数N/D,N为分子,D为分母(N,D均为整数),试编程求出N/D的小数形式,当然如果这个小数为无限循环小数,则把循环的部分用括号括起来,接着循环的部分则省略不写。比如: 1/3    =0.(3) 22/5=4.4 1/7    =0.(142857) 2/2    =1.0 3/8    =0.375 45/56    =0.803(571428) 输入为两个正整数N,D(1 <= N,D <= 100000),输出为对应的小数(为了对齐格式,请一行最多输出76个字符)。 样例输入: 1 3 22 5 1 7 对应输出: 0.(3) 4.4 0.(142857) 3.    排名统计 参加任何一项比赛,都会涉及到排名统计问题,由此可见排名统计是多么的重要.这里假设有一项比赛,共有n(1<=n<=200)个人参加,那么请问共有多少种不同的排名(注意:可以很多参赛者在同一个名次,即参赛者名次可以并列)? 数据输入n,输出为不同的排名总数. 如输入 1 2 3 输出为 1 3 13 4.    括号匹配 括号匹配问题在编译器中是个相当重要的问题,我们如下归纳定义规则括号序列: (1)空序列为规则序列。 (2)若s为一个规则序列,则(s),[s]也为规则序列。 (3)若A,B为规则序列,则AB也为规则序列。 (4)所有的规则序列是由(1),(2),(3)产生的。 如下列的序列都为规则序列 (), [], (()), ([]), ()[], ()[()] 而下面的则不是 (, [, ], )(, ([]), ([() 对于一个给定的由 '(', ')', '[', 和 ']'组成的序列,我们希望通过添加最少的'(', ')', '[', 和 ']'使该序列为一个规则序列。其中,'(', ')', '[', 和 ']'四个符号可以添加到序列的任何位置。 输入由'(', ')', '[', 和 ']'组成的序列,其长度最大为100个字符.输出添加最少括号后找到的规则序列.(注意:结果可能有多组对应的 规则序列,请输出其中的任意一种即可)。 如输入 ([(] 输出为 ()[()] 5.    布尔表达式 给出两个c语言中的逻辑表达式,判断两个表达式是否完全一样(对变量所有的取值,两个表达式的值一样),表达式中的变量可由字母a-z中的任何一个表示,运算符由'|'(或),'&'(与),'^'(异或),'~'(非)组成,表达式中还可能有圆括号,各运算符的优先级跟c语言一样。 输入每两行一组,分别为两个表达式(长度不大于100). 如果两个表达式一样,则输出Equivalent,否则输出Different 如输入 a^b&(b|a) (a^(b&(b|a))) a ^b&(b|a) ~b^a 输出为 Equivalent Different

阅读(6787) | 评论(3)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册