2011新生选拔赛解题报告

来源:互联网 发布:淘宝全球购申请 编辑:程序博客网 时间:2024/04/28 20:57

A题等差素数列

    

     此题可能对10级新生来说比较麻烦,题意是求等差素数列,不一定是连续的素数列,只要满足等差就可以了(这里一开始纠结了一下),我的方法是枚举差值d、记录素数然后比较长度大小,首先可以枚举出每一对素数的差值d然后以d作为公差查找是否有等差素数列,如果能够找到更长的素数则更新答案数组,这样全部穷举完之后输出数组长度和内容就可以了,需要注意的是这个题目数据有点小问题,当答案为0的时候别输出换行,否则会PE。

 

 

B题有多少个1?

     题意就是有多少个1能够整除m,这题首先可以排除数能够被5或者2整除的情况,因为能被2整除必定是偶数,能被5整除结尾只能是0或者5,然后只需要用一个变量a初始化为1然后用while循环不停地增加1的个数,同时记录下1的个数,同时每增加一次就对a模一次m,退出条件无疑就是a==0,最后输出记录1的最终值就可以了,代码很短。

 

C题倒置的蛇行三角

     此题有多种方法可解,最简单的就是按顺序输出然后旋转九十度就OK了,这里介绍一下我的SB方法,就是简单的找规律,观察测试样例可以看到从上到下第一列每次都减少n, n-1, n-2......2,第二列每次都减少n, n-1,......,3,同理第n行每次都增加1, 2,  3,......,n-1。。。。。。由此可以找到规律,那代码也就不难写了^_^

 

D题守形数

     这题是最水的一个题目,就是将n*n模上10^k(k为n的位数),注意一下细节,这里测试数据比较庞大,要用__int64处理变量,尤其是模的对象。

 

E题无忧?绝望?

     这题也很水,如果做出那道约瑟夫问题的同学应该这题问题不大,我的方法非常SB,居然也可以0MS过,比较惊讶,也是穷举,对应每一次的输入都把色子数直接从2穷举到12,每次都记录一下满足无忧位(从来没有被T掉的位置)和绝望位(一直被T掉的位置),如果哪些位置到最后都满足条件的话,那就直接输出。

 

F题特别的高精度加法

    此题一开始数据有点小问题,不过现在已经修正。数组模拟高精度加法,之前做个预处理,将小数点和输入数据前导零去除(后导零可不予以考虑,至于为什么,自己去思考),然后就是简单的高精度加法了,干掉这个题目可以顺便干掉那个艺林A+B、艺林A-B,尤其注意一下两个数都是0的情况,这可能导致程序崩溃。

 

      ps:此次选拔赛本人当场只随便做了几个水题,实在是因为09级的其他大牛都没兴趣参加,所以就只派我这个菜鸟去打打酱油,离高手们距离还是很远啊 !T_T!。。。。让我重新呼喊一遍口号:段教主一统江湖、天下无敌。。。

原创粉丝点击