2012年4月TOJ新生有奖月赛解题报告

随便写点,学长千万不要鄙视啊,赚点积分好换书。-by shfs

 A:序列求和   水题。

 

B:A-B?   开始以为是高精度减法,然后看到21和13得到 7, 就没动手写,还问学长确定是7么(学长说是,我英语比较差,没看到“Please never doubt the picture.”),看着 看着,  下意识的加了下 21+13  得到 34  (还好没有进位)  然后3+4 得到 7 ,前面的数一验证,是了  ,就是 A和B的每一位之和,然后就A了。

 

C:游戏人生之捕鱼达人    首先数的类型是double,数组要开的够大,然后就是2点间距离公式,小于等于r就能抓到,最短距离的话,我先给min赋值半径加上一个10(我是默认能抓到鱼),然后找到比min小的记下坐标和位置。

 

D:Anniversary

重要的一句话“那天之后每个月的10号定为爱情纪念日”,也就是说2011年9月10日和之前的每月10日都不是的

,所以我在输入后先判断 if(y1*450+m1*35+d1<=2011*450+9*35+10) 成立就对 y1,m1,d1 分别赋值2011,9,11(9月10日也不算的,就弄了个11),然后还是用前面的方法判断后面一个 年月日 是不是 比前面一个大(前面一个不是有可能变过了么,有可能比后面一个大了),前面一个如果大了,直接输出0,小的话,先判断if(m2>m1) 成立sum=(y2-y1)*12; 否则的话 在判断if(y2==y1) sum=0;否则 {sum=(y2-y1-1)*12;m2+=12;} (为了让m2大于m1) ,接下来再判断if(m2==m1) 是的话判断if(d1<=10&&d2>=10) 成立 sum+=1; 然后如果m2和m1不相等(因为上面的处理,不相等也就是m2>m1)那先sum+=m2-m1; 再判断 如果 d1<=10并且d2>=10 sum+=1; 两个条件都不成立sum-=1; 其它sum不变。 输出sum即可。

 

E:峰峰玩游戏——可爱表情     我这样赋值了一下,char s[10][5]={"=.=","^o^","-_-","ToT",">o<","O_O","-_+"};

交换的时候 就用 strcpy()(类似a的值和b的值交换,只不过换成了字符串。) 然后恢复默认的话,我用了7个 strcpy(s[0],"=.="); 。(有一个要注意的小问题 下标是0开始的)

 

F:峰峰玩游戏——经验值(一)    先用m除以40.0 求出每格有多少经验保存在double类型的x上,然后 就用n/x 就可以求得条数 k,直接用 n*100/m 求得百分比。按格式输出就好了。

 

G:love168yk的纯真愿望     写了个小程序

main()

{

__int64 a,i;

for(i=1;i<100000;i++)

{

a=(i*i*i)%1000;

if(a==111) printf("%I64d\n",i);

}

}

一跑 规律就来了。

要说怎么想到的话,题目其实暗示很明显,“只包含一个整数k(1<=k<=1000000000000000000)” 看到这一长串的0 就不可能直接去乘了吧,那应该是有规律的。

 

H:黑白图像       广搜的算法。(刚开始学,没有发言权。据说深搜会超时。)

 

I:游戏人生之聚会       不知道 题目想表达什么意思,我是看数那么大(10的100次)如果有什么数学公式处理的话不会那么多人一次A      就尝试性的 原样输出 提交居然A了 。题意求ZZD大神解释。

 

 J:两数比较大小      水题。(重判后都对了)

     


为解题报告打分
暂时不评分

★★
★★★
★★★★
★★★★★
发表您的评论(若贴AC代码或发表禁止言论等违禁行为将被删除并扣除积分)

|返回 |   | 转到页头|
Copyright @ 2008-2024(浙ICP备2022001332号), TZOJ. All Rights Reserved.