这个比赛是在今天凌晨 1:05 开始的,感觉以后做这种还是需要先休息一下。

250 分的题,题意是,皮卡丘只会说三个音节:“pi”、“ka”、“chu”;给出一个只有小写字母的字符串,判断皮卡丘能不能说出这样的话。比如,“pikachu”、“pikapika”之类的要输出“YES”,反之输出“NO”。

我的办法比较笨,都是逐个字母来判断的。但是我感觉这种方法比较快,是 O(n) 的算法。在 Challenge 的时候看到一种方法,每次判断开头几个字母是不是“pi”、“ka”、“chu”,如果不是就直接返回“NO”了,如果是的话,就删除前面几个字母。但是这种方法似乎没法通过系统测试,不过在 Challenge 阶段这样的题解也没人敢动,所以这样错的原因可能是效率比较低。

500 分的题目,题意是,有 n 个数字,每次可以删除其中“不是首位的”数字,然后获得那个被删除数字左右两个数字之乘积的能量。这些数字都是正的。数据范围是 3 ≤ n ≤ 10, 那这样的话即使用穷举也是最多 8! = 40320, 这就无压力了。

1000 分的题目,不会做。和室友讨论了将近 40 分钟,没有什么结果。

然后 Challenge 阶段,居然意外地搞了两份代码。今天早上起床的时候,发现 Rating 涨了,终于变成了绿人……

原创文章,转载请注明来源:http://euyuil.com/3258/topcoder-single-round-match-533/