好几天前老师说有测试赛,我一直没拿到题,所以一直没做,今天ll老师发到了群里,我就下载下来做了,感觉题目挺难,难度和去年软件大赛决赛c本科一个水准。。想在两个小时之内做完必须有聪哥那样的水平,我差不多一共用了3个半小时才做完,可能是因为我Java学的挺差的。。Java功底雄厚的童鞋,完全可以秒杀我。。
题目在这里:点击打开下载链接
 
第一题:连续平方数
题目描述:
为了表示方便,我们把5的平方记为:5^2
 这样,连续自然数的平方和就记为:1^2 + 2^2 + 3^2 + 4^2 + …
 请看下面的公式:
1^2 + 2^2 + 3^2 + 4^2 + … + x^2 = y^2
是不是存在整数x,y,使得公式成立呢然x=y=1 勉强成立,数学上称为“平凡解”。
你的任务是寻找该方程的某个非平凡解(实际上只有1个)。
 请填写该公式中x所代表的数字。
 注意不要填写多余的内容。
答案与得分:
24 得分10分
分析:
纯暴力就行。。。代码如下
代码:
第二题:硬币方案
题目描述:
  有50枚硬币,可能包括4种类型:1元,5角,1角,5分。
 已知总价值为20元。求各种硬币的数量。
 比如:2,34,6,8 就是一种答案。
 而 2,33,15,0 是另一个可能的答案,显然答案不唯一。
 你的任务是确定类似这样的不同的方案一共有多少个(包括已经给出的2个)br> 
 直接提交该数字,不要提交多余的内容。
答案与得分:
50 得分16分
分析:
  (PS:如果不知道dp是啥,或者感觉无从下手的,就先看背包九讲中的第一部分01背包,然后再做我博客里面DP背包专辑中01背包的部分,做完前11道题,再敲一下完全背包的前两题,然后这道题就很轻松了。。。)  看到这道题第一反应就是dp,如果换做一年前的话就是暴搜了,暴搜肯定能出结果,但是效率、空间各方面都不如dp,而且如果这道题放在OJ上面,暴搜一般就会TLE掉。  dp的状态转移方程如下:  for (i = 0; i < 4; i++) 
         for (j = 1; j <= 50; j++) 
                 for (k = 400; k >= coin[i]; k–) 
                         dp[j][k] += dp[j-1][k-coin[i]];
   实际上就是一个递推,dp[j][k] 表示硬币个数在j以内,弄出k块钱的解法的个数。 
代码:
第三题:连续公倍数
  题目描述:  为什么1小时有60分钟,而不是100分钟呢是历史上的习惯导致。
 但也并非纯粹的偶然:60是个优秀的数字,它的因子比较多。
 事实上,它是1至6的每个数字的倍数。即1,2,3,4,5,6都是可以除尽60。
我们希望寻找到能除尽1至n的的每个数字的最小整数。
 不要小看这个数字,它可能十分大,比如n=100, 则该数为:
 69720375229712477164533808935312303556800
为此,有必要使用BigInteger来记录这样的大数。
请阅读下面的代码,填写缺失的部分(下划线部分)。
答案与得分:
   x[j] /= x[i]    18分
  
分析:
  额。。怎么说呢。。每次做填空题就是凭着感觉。。就做出来了。。  
  
第四题:二阶魔方
题目描述:
魔方可以对它的6个面自由旋转。
 我们来操作一个2阶魔方(如图1所示)
 为了描述方便,我们为它建立了坐标系。
 
xyz 则表示顺序执行x,y,z 3个操作
 题目的要求是:
 从标准输入获得一个串,表示操作序列。
 程序输出:距离我们最近的那个小方块的3个面的颜色。
 顺序是:x面,y面,z面。
 例如:在初始状态,应该输出:
 绿红白
 初始状态下,如果用户输入:
 x
 则应该输出:
 绿白橙
 初始状态下,如果用户输入:
 zyx
 则应该输出:
 红白绿
   
  
样例输入:
  xy
 xxyyy
 xyzzzzyyyxxx
 xyyzzz
 xyxyzzxyxyzz
  
样例输出:
  红白绿
 白红蓝
 绿红白
 黄绿橙
 白绿红
   
  
得分:
5组数据,正确数据个数*5 满分25
分析:
  其实这道题可以通过对编 来进行找规律,从而更快更有效的来重置魔方,但是本弱菜太菜了。。只能通过手工画图,然后一一对比,找到转换魔方编 的方法。。。相当于纯暴力,代码比较容易读懂。。下图是我画的图。。  每个格子表示颜色,白色用灰色代替了。。每四个小格子组成一个大格子,左上角写了他属于一开始的哪一个面,  用直线画的是每一种转法。。。可能会有点乱,少有不慎就会有错误结果  

  
代码:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!