呃,其实我是个菜如一只鸡的家伙了,想了那么久说要去打Topcoder 的srm,从配置好到实际打,中间间隔估计超过1个月.
当然第一次srm人品比较好,250和500水过,950的没想法也就认了,实力就没到那里,然后Challenge阶段hack 2/2,然后莫名的就给我定到了1411,缺个口的蓝名。
不过说老实话,Topcoder Arena这个客户端在默认配置下的使用难度真是让人觉得有点悲伤……
我就把我调教Topcoder Arena的经历和第一次打SRM写在这里和(qiu)大家分(pai)享(zhuan)了,让大家见笑了。
(整体以我在Win下的配置为例,Linux下据说有更多坑,不敢往下跳,Mac OS,那我就更没玩过,后两种系统的同学们自行谷哥)
0、前期准备
Part 0:学习一种语言
Topcoder Arena(SRM)现在支持的语言有,C++(gcc 4.8.1,且支持C++11特性,clj表示使用起来非常舒爽,但是老实说Codeforces管理员测出来开-O2有bug)、Java(好像是Java7,现在Java8出来了有没有更新不知道)、MS C#(看起来是.NET 4.0,现在是不是.NET 4.5我没有条件测试——有个Lambda和LINQ够帅了)、MS VB.NET、Python(据说很老,查到有说Python2.6的?)
(这些语言的运行环境可以参见:http://apps.topcoder.com/wiki/display/tc/General+SRM+Algorithm+FAQ)
(另:Topcoder对提交的代码的评测环境好像有些遮遮掩掩的,新老版本网页混合运行的情况下这个最新的准确信息更难找到了,Codeforces上这个相对做的较好了,专门一个页面说明所有编译器、运行命令情况)
这里要注意到没有C语言,因为Topcoder的题目和传统acm/icpc题目要求编写的代码是有区别的,Topcoder的形式下你要做的是:
约定了你提交的代码中的类名和待调用函数的名称和参数类型,实现这个待调用函数,返回预期的结果(而不是通过标准输入输出返回)。
也就是说,你写题的时候不可避免的涉及到类这个概念。
而且,C++的同学们要注意,在传入和返回字符串、数组等的时候,Topcoder上一般给出的形式是string、vector<>这种,所以,C++的同学不会STL(的基本用法)那就基本没法做题了。(搞一本刘汝佳的紫书,把第5章学习一下没错的)
其实用哪种语言都要注意,系统库提供的一些非常实用的常用算法和容器你还是要非常熟悉的,比如排序。不熟悉的语言就不要贸然使用了,不然蛮拖累你的编程阶段的。
Part 1:注册一个Topcoder账号,并且补充个人信息
注册账号的流程和其他注册账号的区别并不大,不过和国内的相比是略显繁杂
点击此处的Sign Up
注:常见问题是,点击Sign Up后没有任