工欲善其事必先利其器,给大家介绍一下ACM里面经常使用的一些工具,平台,作为第一发福利。
详细看这里,我直接粘贴过来有些代码没贴过来 http://*qi.net/house/acm_weapons
各种强大的编辑器 + codeforces平台 + topcoder平台
有什么问题欢迎留言。
问题一:假设发现arena打不开
那么打开控制面板->java->常规->设置。点击删除文件
或者下载这个,解压后点击run.bat执行就可以。
1:codeblocks 下载链接
codeblocks是各种现场赛基本都会有的IDE。属于最经常使用的IDE中的一种。
下载完毕后打开codeblocks,file -> new -> project ->Console application->next->next->选择保存文件的文件夹然后取个名字
按F9编译就可以。
2:sublime text 下载链接
sublime 是一款文本编辑器,我一般採用文本编辑器+命令行编译的组合。
下载sublime后直接打开,在view里面的Syntax下配置一下你要编写的语言,我这里选择c++,然后就能够開始写代码了,写好代码按ctrl+s保存某文件夹下就可以。
sublime有一些非常方便的快捷键可供使用,详细可參考官网或者网上其它教程。
3:vim/gvim 下载链接
简单的说。vim是一款极其个性化的文本编辑器。你能够设置配色方案,自己定义编译命令,提前定义代码段等等。
这些设置都在安装文件夹下的一个vimrc的文件中面设置。 以下是我的vimrc,在现场赛,你仅仅须要敲前五行就够了。
把_vimrc里面的东西先所有删了。然后把以下的vimrc贴进去。
打开vim。按f2,编辑器就会自己主动把头文件显示出来。避免你每次反复劳动。
F4编译,F5执行。
Code TEXT
vim主要的使用方法能够參考这里 简明vim练级攻略
假设你是第一次使用vim。那vim可能会让你感觉非常不适应,可是一旦你用熟练了之后,vim将会给你带来非常大的方便。
4:编译。mingw-setup
因为下载安装啥的须要较长时间,这里我给出已经安装好的MINGW文件
下载好之后,解压到不论什么一个文件夹就可以。
比方,我放到了D盘,因此,在D盘下会有这样一个文件文件夹 D:\MinGW\bin
我们看到了g++.exe,这个就是用来编译c/c++文件的编译器,你能够直接把cpp文件拖到这个exe上面进行编译。当然,更方便的做法是配置一下环境变量。
找到计算机。右键。属性,高级系统设置,环境变量。在以下找到PATH并打开
然后在末尾把刚才D:\MinGW\bin这个文件夹粘贴进路径里面。注意要用封号跟前面的路径隔开。
如今你能够按win+r 组合键打开一个控制台 输入cmd,打开
如今输入g++ -v,你能够看到g++编译器的版本了。如今的g++编译器已经对全局产生了作用,而不不过局限在一開始的D盘那个文件夹下了。
如今。我们採用cmd + sublime 以及 cmd + gvim的形式来编译我们的代码
cd命令是进入某个文件文件夹,比方这个E.cpp在桌面的新建文件夹以下。所以就一直cd过去就好了
g++ E.cpp -o E命令是编译E.cpp 文件产生E.exe可运行文件。
所以接下来输入E之后。就会自己主动调用E.exe,就能够输入a+b了。
假如发现错误,要改动,每次记得ctrl + s 先保存,然后再又一次输入编译命令进行编译(也能够按“上”方向键来得到历史命令,避免反复输入编译命令)
vim下也是类似,只是个人感觉vim下开一个cmd辅助编译更加方便。由于你始终能够保持代码界面在你眼前,在linux下还能够避免来回切换代码界面与编译界面。方便注意力的集中
每次编译之前都别忘了保存。
5: Topcoder比赛平台配置 JDK7下载(win32选择x86,win64选择x64)
JDK7网盘下载
arena下载(Algorithm(SRM)以下的Launch
Arena)
arena常常会更新,所以有时候版本号落后了就要去上面那个地方下载
我下载好的 arena网盘下载
MOJ下载(包括了要用到的插件以及安装说明)
Arena指的就是topcoder竞技平台。
简单介绍
Topcoder是比較老牌的程序设计竞赛组织。
topcoder上有非常多比赛。我们最常做的就是SRM,一般一两周有一场。每场比赛三道题,由简单到难。分div1 与 div2两个地方。div1是高水平组,div2是菜鸟组。系统会依据你当前的rating分配你的组别。每场比赛之后都会更新你的rating,也就是你的分数。
先得去官网注冊一个账号http://www.topcoder.com/
各种功能能够再这里的Algorithm 以下看看 http://community.topcoder.com/tc
安装好jdk后,下载arena,打开后我们看到了这个界面。
登录你刚才在官网注冊的账号,就能够进入TC对战平台!
我们发现,每一个人的handle有各种不同的颜色。这个颜色就代表你在这个平台上的级别,从绿色到蓝色到黄色再到红色最后再到target,比赛打得好了,会使你的的rating升高,rating升高到一定程度。你的颜色就会变换,非常类似与游戏中的积累经验,升级。
如今。我们大概浏览一下这个平台。
首先是practice rooms。这里面记录了从topcoder平台上线以来的全部比赛。已经有非常多年的题目累积了,平时没有比赛的时候我们能够在practice rooms里面磨练自己的技能
div2 的题目适合于菜鸟练习。我们随便进入一个div2的房间比方SRM 419div2
能够看到,一共同拥有三道题目,在正式比赛的时候假设你打开一道题目,这道题目的分数就開始流失。一直到你提交代码。流失才停止,这个时候这道题目还剩下的分数就是你的得分了,当然。流失是有一个上限的。比方。250分的题最低分是75分。也就是最多流失175分。
我们点开第一个,也就是最简单的题来看下。
以下的区域就是你写代码的地方,当然,我们肯定是在本地写好正确的代码,然后贴到这里面,然后点击右下角的compile通过平台的编译,然后再点击submit来提交代码
我们来简单看一下这道题目。
题意就是 给你一个如图所看到的的图形,让你求这个图形的周长。
非常easy的一道题!
Constraints里面告诉我们长方形的个数最多是50个。
Limits告诉我们的是时间限制以及内存限制。这些跟onlinejudge差点儿相同。
唯一不同的是,这里面的题目不须要你输入输出东西。arena平台会给你一个Definition,来规定你的代码格式。
比方这题,你的代码格式就必须为(省去了若干头文件)
Code CPP
假设你没有c++基础,那么先去了解一下c++类的知识。然后学习一下c++ 里面vector string等的使用方法,就足够到这里来用了。
如今,你仅仅须要在int getPerimiter(vector <int> a)函数中实现你的代码逻辑。最后把答案返回就好了。
然后。编译的话你能够将代码粘贴到以下的框里面,点击compile,compile成功后点击test能够进行例子的測试。
比方我实现好代码后,点击右下角的compile
代码在此
Code CPP
显示执行成功。点击test
一组组选择数据进行測试。
都測试通过后假设感觉代码没什么问题就能够点击右下角的submit进行提交。
‘
能够看到有一个分数,注意,这个分数仅仅是说明你打开一道题目到你提交这段时间的一个损失的分数。比方这道题原来是250。如今得分是208,那么也就是说你损失了42分。比赛的时候就是比准确性,还有比速度。
如今是在练习房。所以我们能够直接測试一下自己提交的代码究竟AC了没有。
点击Run System Test
能够看到。一共90个数据所有通过,250分的数字显示了绿色表示通过。这样。我们就Ac了这道题目了。
平台的一些插件的配置。
不知道大家注意到了没有,假设我们想在本地进行測试,须要自己写main函数,然后定义类,把例子的參数传进去。会变得非常麻烦。
只是用插件就方便非常多了。这里採用moj相关的插件,moj在上面的下载链接里面有。
下载下来之后里面有一个instructions,我翻译一下。然后给出一些关键截图。
Setup:
1. 解压moj压缩文件,发现有三个jar文件
2. 点击Options以下的Editors
3. 点击Add,name一栏填CodeProcessor。Entrypoint填codeprocessor.EntryPoint,然后在路径里面把刚才那三个jar包选中。
4.选择我们刚才新建好的Editors,然后点击configure ,在"Editor EntryPoint" 栏目下填写fileedit.EntryPoint.
点击右边的configure 。 把第一个勾 "Backup existing file then overwrite" 去掉. 第一行的路径你就填写一个想要保存代码的地方。
插件安装完毕后提前定义的那些代码就会自己主动保存到这个文件夹以下。
在Code Template里面选择c++语言,然后把压缩包里面的那段特殊代码贴进去。然后点击save退出
5. 回到 CodeProcessor configuration 窗体。点击Add,输入moj.moj,点击右边的verify測试一下插件是否成功安装。
看到四个found就表示成功了。
然后一路保存退出就可以。
如今我们打开一道题目再试试看。
我们发现右上角的editor变成了我们刚刚成功安装的codeprocessor插件。然后以下的框显示代码已经导入到本地文件夹了。我们再去本地文件夹看一下
打开代码
我们发现各种头文件,class名字,方法,都已经写好了。
然后我们把刚才写好的代码贴进去,执行一下这个代码看看。
发现每组数据都会显示是否通过,非常好非常强大。全然省去了我们花在输入输出上面的时间。
5:另一个平台就是codeforces平台
codeforces上也有类似于topcoder那样的div1和div2,事实上你就能够理解为topcoder的网页版本号,当然。总会有一些不一样的功能。
codeforces题目较多。题目质量不如topcoder。
每场比赛有五道题。比赛时间为两个小时。
我们点开contests页面
发现主要有两个栏目,一个是未来或者正在进行的比赛,以下是过去的比赛。你能够点开过去的比赛,来练习曾经的题目。
每场比赛都是要提前注冊的。点击红色的register就可以注冊。
我们点开一场比赛的enter
假设你ac了一道题。就会显示绿色。右边的start virtual contestbutton提供了虚拟比赛功能,假如你错过了某场比赛,你能够在赛后參加虚拟比赛。比赛时候的排名会又一次实时显示出来。
上方有一些button
room是你被分配到的房间。比赛的时候你在这个页面将对应的题目锁掉(意味着你不能再提交这道题了,即使你发现提交的代码有错误),然后点击room进去到你的房间里面,你就行查看同一个房间内你锁掉的题目的别人的代码(双击分数就可以查看代码)。
假设你发现别人的代码是错的,就点击hack。输入对应的可以使得他的代码出错的数据。
topcoder比赛与codeforces比赛在比赛中提交的代码你都是不知道是不是真的AC了,在codeforces你会显示通过了pretest 。也就是非常少的一些数据,在topcoder里面,你随便提交一个代码都能得到分数。可是两个平台都是一样,假设终于的数据測试中错了,你还是零分。
codeforces类似于online judge,不要做过多的说明,其主要目的是为了让读者知道有存在这样的地方。
版权声明:本文博主原创文章。博客,未经同意不得转载。