topcoder使用

呃,其实我是个菜如一只鸡的家伙了,想了那么久说要去打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后没有任何反应,或者移动到左侧的About Topcoder等没有出现下拉菜单

这是由于Topcoder所使用的jQuery没有被正确加载所致(在一个cdn上,估计被block了),解决方法就是——爬梯子。

按上面的要求填写,这些都是必填项,Email请填写真实Email,因为需要邮件激活。

另外能让我小小的吐槽一下吗,密码一定要大小写字母和数字混合的,而且强度必须满足要求,这好像是我注册各种账号中,在苹果之后的第二家……

这样注册了,如果只是想打打TC Arena,够用了,如果有一些TC相关活动想参与(比如2014.7.29 的 [topcoder]Asia Programming Comptition),还需要补充一些信息。

Log In登录,然后

1、点一下主页——My Account——Account Settings

2、点一下 Update my profile

3、跟着向导一步步完善你的个人信息(不懂的单词,那就找找英语词典吧)

 

Part 2:安装并配置JRE

Topcoder Arena是一个Java应用程序,现在的环境下,你必须需要通过Java Web Start启动。

好吧,就算你是个想好了不用Java写题的C++/C#/VB.NET选手,抱歉,Java Runtime Environment还是要装(JDK倒是没必要,毕竟不用写Java程序)。

(另:linux下的同学请注意,据说OpenJDK的web start跑这个Arena跑不起来,为了您 的幸福,还是装一下Oracle的JRE/JDK吧)

不同系统环境下的具体安装方法和系统环境变量的配置方法这个大家都可以搜索到的,这里就不讲了。

1、第一次启动Topcoder Arena,第一次做练习

前面的准备工作做足以后,终于可以开始第一次见识一下Topcoder Arena了。

不知道你有没有把JRE的bin目录加到你的环境变量的path里,有的话:

Win+R,然后输入cmd,回车打开命令提示符

然后,复制粘贴一下下面这个命令

==============================================================

javaws http://community.topcoder.com/contest/arena/ContestAppletProd.jnlp

==============================================================

是的,就上面这一行

(你可以选择保存成一个.bat文件,放在桌面上当一个快捷方式用)

多等一会(视网络情况而定),你就能看到Topcoder Arena的登陆界面了

常见问题1:

我怎么按上面的步骤打开,提示无法启动应用程序,详细信息说是,发现未签名的条目呢?(如下图)

答:这种情况多见于新的Java7/Java8下。Java7/Java8增强了安全性,限制非常之严格

解决方法:把topcoder的域名加入例外站点中。

打开Java控制面板(Windows下:控制面板-Java,或者开始菜单-Java-配置Java),切换到安全选项卡。

看到“例外站点”列表了吗?点击边上的“编辑站点列表”

点击添加,输入http://www.topcoder.com(必须是这样输入的,一个字符都不能省,也不能改)

单击空白地方,弹出提示框

点击“继续”,之后一路确认,保存这个修改。然后顺带清空一下Java应用程序缓存(必须步骤,不然不起效)。

再启动试试看,就好了,问题解决。

 

常见问题2:

之前用TC Arena好好的,突然有一天开始,无法见到这个登陆界面,Java总是说无法打开应用程序,怎么回事?

这种情况一般多见于TC Arena更新后。Java有这种jnlp应用的缓存机制,会缓存jnlp的,但是很可能会导致使用过老的jnlp,从而访问已经不存在的老版本jar文件。

解决方法:清空一下Java的缓存。打开Java控制面板,临时Internet文件-设置-删除文件,确定,重新尝试打开客户端,就没事了。

 

然后输入你注册时的handle和你的密码,点Go登录

有的时候点Go也登陆不进去,有可能是Topcoder的Arena在做维护,也有可能是你的网络有点悲催,只能说,多试试就行了。

 

下面是登陆以后的界面

在做TC Arena里的题目之前,首先要设置一下默认语言。

依次点击上面菜单栏的Options--Setup user preferences

单击Editors选项卡,在Default Language里选择你所喜欢使用的语言,之后注意要【单击右下角的Save,再单击Close】

 

然后我们要开始TC Arena上第一次看看它的题目应该怎么做了。

单击菜单栏上的Practice Room,这里放了TC历次的比赛题目。我们这次以SRMs-985-SRM 628 Div2 为例。

这里就是比赛时和练习时能看到的房间了。

单击下拉菜单,可以看到每个题目的分值,选择某个分值,稍后就能看到相应的题目。

一般TC上题目的分值都是250-500-1000的分布(每题可能上下浮动50分),从点开题目开始减分,通过一个略复杂的函数计算你到某一秒时提交这个题你的得分。

这里,我们选择最简单的250分题看看。

之前我们说过,做Topcoder Arena的题目时,你只需要完成一个类的一个方法即可。

整个界面的最顶上约定了题目的类名、方法名、传入参数的类型、返回值的类型。

界面上半部分是题目描述,下半部分是打代码的地方。

你可以看到,下面空空如也,于是我们首先要完成一个类的基本框架

 

 
  1. class BishopMove {

  2. public:

  3. int howManyMoves(int r1, int c1, int r2, int c2) {

  4. return 0;

  5. }

  6. };

  • 1


之后我们把这个方法内要写的一切都写好。(当然,你可以自己再多加几个方法供这个主要的被调方法调用)

 

然后你可以点击Complie编译(编译通不过的TC Arena不会让你提交的),点击Test进行一下测试,再点击Submit进行提交,提交成功会返回给你你这次提交的得分

如果你觉得你之前的提交有问题,你可以重复提交,但是重复提交将会以最后一次提交的得分为准,并且你还要额外损失大约10%的得分

(所以要又快又准)

然后,在练习模式下,你可以即时的进行系统测试

在练习房间里,单击Practice Options-Run System Test,之后系统将会评测你的提交并返回你的提交是否通过了系统测试

 

===========================这是一条分割线===================================

Topcoder Arena本身所提供的功能就简单介绍到这里。

不过大家肯定有感觉,如果每个题我都要把类的框架这样辛辛苦苦写好,测试还要一个个测试点自己一次次测过去,那真是太麻烦了。

幸好,Topcoder Arena提供了插件功能,你可以选用自己喜欢的插件作为默认的Editor。

限于篇幅,本篇只能介绍这么多了,之后将会有3篇文章,分别来介绍一下Topcoder Arena平台上流行的3种插件方案(就当我挖了这3个坑了)

1、CodeProcessor+FileEdit+任意一款数据生成器(最传统的方案)

2、KawigiEdit(Arena默认的Editor的加强版,clj也在用的插件)

3、Greed 2.0(我个人非常喜欢的插件,默认配置非常简单且已经够好用了,而且还在更新)

这三种方案所需的插件文件我已经整理上传了,下载地址:http://pan.baidu.com/s/1qWFevA8

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值