呃,其实我是个菜如一只鸡的家伙了,想了那么久说要去打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

topcoder使用相关推荐

  1. *[topcoder]TheTree

    http://community.topcoder.com/stat?c=problem_statement&pm=12746&rd=15703 这道题有意思.给了树的根和每层节点的个 ...

  2. TopCoder 入门教程 -- sqybi完善版

    本文根据经典的TC教程完善和改编. TopCoder:http://www.topcoder.com/ 基本规则 TopCoder的比赛类型很多,最常见的是周赛SRM(Single Round Mat ...

  3. TOPCODER SAM 686 div1 300

    // TOPCODER SAM 686 div1 300 Problem Statement 带有小中括号的括号序列,问可以去掉多少子串,使得剩下的非空串是合法的. Constraints 字符串长度 ...

  4. Topcoder SRM 697题解

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

  5. Topcoder Srm 671 Div2 1000 BearDestroysDiv2

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

  6. TopCoder入门教程

    from http://hi.baidu.com/juart/blog/item/e0ef838b705eb9d4fd1f1039.html 基本规则 TopCoder的比赛类型很多,最常见的是周赛S ...

  7. Ubuntu下Topcoder配置

    先去下载一个http://community.topcoder.com/tc?module=Static&d1=applet&d2=partial-support 并且确保jdk可以使 ...

  8. topcoder srm 714 div1

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

  9. Virtual Judge —— Nim TopCoder - 11469

    Problem Statement 问题陈述 Alice and Bob are going to play a famous game called Nim. 爱丽丝和鲍勃将要玩一个著名的游戏叫尼姆 ...

  10. *[topcoder]JumpFurther

    http://community.topcoder.com/stat?c=problem_statement&pm=12300&rd=15699 题意:有一个无限长的阶梯,i从1到N, ...

最新文章

  1. DrawerLayoutDemo【侧边栏(侧滑菜单)简单实现】
  2. vijos1055 奶牛浴场
  3. 华为内核已经升级到鸿蒙,安卓再见!华为升级全力转向鸿蒙OS
  4. X光肺炎检测竞赛上线!
  5. SQL Server 全文索引创建
  6. 洛阳计算机学校排名2015年,洛阳最好的中专学校有哪些 十大中专学校排名
  7. python用方括号提取字符中的数值_Python使用re模块正则提取字符串中括号内的内容示例...
  8. 通过BeanPostProcessor理解Spring中Bean的生命周期及AOP原理
  9. ajax无法访问,Ajax不能跨域访问的解决方案
  10. 是否要从单片机转嵌入式Linux?
  11. Quake3 快速开平方和开平方倒数计算优化
  12. c语言错误c1083是什么意思,fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directo...
  13. 2021.3.30-Robocup 2D学习日志
  14. Lync问题解决之在Lync客户端中,无法查看到聊天记录
  15. strtok函数及其实现
  16. 线程中断标志位 interrupt()、interrupted()、isInterrupted() 的认识
  17. [Java]窗口的跳转
  18. YTU 3386 哈希查找2
  19. 深度学习:Keras入门(一)之基础篇
  20. 第十一课 Kubernetes生产级实践-ServiceMesh代表作istio

热门文章

  1. Xamarin 初学,设计一个简单的美景展示App(只实现了部分功能)
  2. 为什么看起来不是很复杂的网站,淘宝、腾讯却需要大量顶尖高手来开发?
  3. 全国一二线城市各大互联网(IT)公司,各位找工作的小伙伴可以参考
  4. php实现加密解密,PHP实现的加密解密处理类
  5. XMPP 客户端和服务端
  6. Vin码识别车牌识别检测-年检又没过关,总是卡在尾气
  7. C++ STL map插入效率优化
  8. The “fxp/composer-asset-plugin“ plugin was skipped because it requires a Plugin API version (“^1.0“)
  9. 导入Model为啥没有addAttribute()方法???
  10. 百度地图多点路线规划_期待已久的多地点路线规划功能