2013年6月TOJ新生有奖月赛解题报告

2013年6月TOJ新生有奖月赛-by lemon

A:判断日期

这题据说题意不明。不过当时我没想太多,没考虑年份,也没考虑月份的格式(侥幸啊)。首先就是判断两个日期是不是合理,然后按年月日这样的顺序比较下来。

B:马虎的算式

这题,因为数据比较小,所以我用了比较土的方法,就是5个循环嵌套。 根据ab * cde = adb * ce可以看出这些字母对应的位置是固定的。可能有些人会输出好几个一模一样的答案,原因可能是你将字母的位置交换了。

C:翻硬币

开始我想了很久有啥规律,最后发现其实就是从头开始找下去,如果两个字符串对应的位置不同,就讲该位置i与i+1两个翻转。记录完次数后判断一下,翻转后两个字符串是否相同。

D:一条线段

这题真是困扰了我好久啊。最初的做法是,求出这条直线的斜率,然后判断横坐标与斜率乘积即纵坐标是不是整数。这里有一点要注意斜率与横坐标相乘时可能会超过int类型的范围。不过最简单的做法是求两数的最大公因数(个人表示想不到...),不过输出结果要减1,因为不包括它自身。

E:IP address

英文题最大的困扰是题目看不懂。题目意思是给你一个IP地址,这个地址可能是十进制的也可能是32位二进制的。如果是十进制就转换为32位二进制,如果是二进制的就转换为十进制。所以不难发现输入的数据是固定的,a.b.c.d(4个小于256的整数数)或者abcd(4个8位的字符串)。十进制转换成二进制时,可能会忘记不足8位补满。

F:页码分页

这题其实是道纯模拟题。就是根据题目给的规则来输出结果。因为从第2条规则开始是否隐藏都与中间页面的值有关,所以可以先判断中间页面的个数及包含的页码。首先从需要输出的页码m判断,如果大于总页码,那么就输出所有页码,反之,就根据规则5计算下中间页面包含的所有页码,我的方法是,用a,b记录首尾的两个数字。然后用a根据规则2,3,4去判断该部分是否需要隐藏。同理用b根据规程6,7判断。题目少写了一个最后一页的判断与第一页同理。PS:当前页面要加[ ],输出格式需要关注。

G:下飞行棋了哦!

首先你要会玩飞行棋。大概规则相同。1.就是6起飞,2.走到同色的位置跳到下一个同色位置即向前跳4格。3.飞棋就是跳4格到起飞的位置飞到对面的同色位置(跳飞)或者从起飞的位置飞到对面同色位置再跳4格。4.如果已经在通道里了,输入的数字大于剩余的步数,就绕着中间的END顺时针走,直到到达同色END。我的方法是先将需要跳的或者飞的位置存在一个数组里,方便之后调用。

H:九连环

I:操作系统之磁盘调度算法

J:How many

K:对话密码转换

额,这题,大家就看题意嘛。对应输入输出。

PS:很多题目不止一种方法。


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

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

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