呃,其实我是个菜如一只鸡的家伙了,想了那么久说要去打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的题目时,你只需要完成一个类的一个方法即可。

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

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

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

class BishopMove {public:int howManyMoves(int r1, int c1, int r2, int c2) {return 0;}
};

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

然后你可以点击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

TopCoder SRM(Arena) 一日游记相关推荐

  1. Topcoder SRM 697题解

    Topcoder SRM 697题解 D1L1 分子分母同乘a[i]: \(a_{i}^{b_{i}+1} mod \prod a_i = 0\) 然后我们考虑质因子p,设质因子p在a[i]中出现cn ...

  2. 20211229——环球影城一日游记(幸运值拉满)

    20211229--环球影城一日游记(幸运值拉满!!!) 交通+入园 游玩 哈哈哈哈哈哈!!! 简直不要太开心!周三我们去了环球影城,原本想在跨年的时候去,结果当时订票的时候发现元旦影城也要休息的啦, ...

  3. Topcoder Srm 671 Div2 1000 BearDestroysDiv2

    \(>Topcoder \space Srm \space 671 \space Div2 \space 1000 \space BearDestroysDiv2<\) 题目大意 : 有一 ...

  4. topcoder srm 714 div1

    problem1 link 倒着想.每次添加一个右括号再添加一个左括号,直到还原.那么每次的右括号的选择范围为当前左括号后面的右括号减去后面已经使用的右括号. problem2 link 令$h(x) ...

  5. [Topcoder SRM 590]Fox And City(网络流建模)

    题面 问题描述: 一个国家有n个城市,编号为0~n-1.编号为0的城市是首都.该国的道路网形成无向连通图.换句话说:城市之间通过双向路径连接. 对于每个城市,至少有一条从该城市到首都的路径(path) ...

  6. topcoder srm 691 div1 -3

    1.给定一个$n$个顶点$n$个边的图,边是$(i,a_{i})$,顶点编号$[0,n-1]$.增加一个顶点$n$,现在选出一个顶点集$M$,对于任意的在$M$中 的顶点$x$,去掉边$(x,a_{x ...

  7. Topcoder SRM 663 DIV 1

    ABBADiv1 题意: 规定两种操作,一种是在字符串的末尾添加A,另一种是在末尾添加B然后反转字符串.现在给你一个起始串,一个终点串,然后问你是否能够通过以上两种操作,从起始串变为终点串. 题解: ...

  8. Topcoder SRM 657DIV2

    前言: 像我这样一直在DIV2的弱菜..不知道说什么了. A:一定判断有8个'R',每行 每列只有一个 B题:大概是  int E,int EM,int M,int MH,int H 然后EM可以给值 ...

  9. topcoder srm 706 div1

    1.给定一个迷宫,点号表示不可行,井号表示可行.现在可以改变其中的一些井号的位置.问最少改变多少个井号可以使得从左上角到右下角存在路径. 思路:设高为$n$,宽为$m$,若井号的个数$S$小于$n+m ...

  10. topcoder srm 694 div1 -3

    1.给出$n$个数字,将其分成三个非空的组,每组的权值为该组所有数字的抑或.选择一种分法使得三组的权值和最大? 思路:记录前两组的权值且三组有没有数字时第三组的值.(当前两组的值知道时第三组的权值是确 ...

最新文章

  1. 基于GAN的图像水印去除器,效果堪比PS高手
  2. Linux基金会网络策略副总裁Marc Cohn:OPEN-O遍及网络,尽享服务
  3. ConcurrentModificationException并发修改异常
  4. linux开启防火墙特定端口号
  5. 20应用统计考研复试要点(part38)--概率论与数理统计
  6. workerman json mysql_workerman-json-rpc
  7. AI技术人才成长路线十大方向
  8. UML/ROSE学习笔记系列二:UML的概念模型
  9. mysql5.7.22的配置说明_mysql 5.7.22 免安裝版Windows配置
  10. 如何优雅地过滤敏感词
  11. CDH集群更换IP处理方法
  12. Python-Django框架学习笔记——第一课:Hello World
  13. 如何VS Code打造成Java开发IDE?
  14. Php绘制棋盘,第二次DIY棋盘,纯手工绘制完美棋盘
  15. 全局壁纸美化v3.0安卓版
  16. 微服务架构-实现技术之六大基础组件:服务通信+事件驱动+负载均衡+服务路由+API网关+配置管理
  17. 第1阶段C++ 匠心之作 从0到1入门
  18. Xmind8 (update8)破解教程
  19. linux0.11内核完全剖析 - ll_rw_blk.c
  20. 机器学习指标(Precision、Recall、mAP、F1 Score等)

热门文章

  1. 2021苹果AppleiOS开发证书申请详细图文流程
  2. 全国一二线城市各大互联网(IT)公司,各位找工作的小伙伴可以参考
  3. 发送邮件,javax.mail 与 geronimo-javamail_1.4_spec 的jar包冲突
  4. 手机APP应用开发技术课程论文
  5. 盗版 Win7 试用到期后黑屏咋办
  6. 清华领军计划计算机试题,清华大学2017年自主招生领军计划笔试真题
  7. Mysql优化之explain你真的会吗?
  8. 首先实现储存程序的电子数字计算机是什么,世界上首先实现存储程序的电子计算机是什么...
  9. 2021-07-19普中科技STM-32F1开发板初学
  10. 使用Windows Sysprep来封装系统