ACM核武器
工欲善其事必先利其器,给大家介绍一下ACM里面经常使用的一些工具,平台,作为第一发福利。
详细看这里,我直接粘贴过来有些代码没贴过来 http://wuyiqi.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,不要做过多的说明,其主要目的是为了让读者知道有存在这样的地方。
版权声明:本文博主原创文章。博客,未经同意不得转载。
ACM核武器的更多相关文章
- 收集一些关于OI/ACM的奇怪的东西……
一.代码: 1.求逆元(原理貌似就是拓展欧几里得,要求MOD是素数): int inv(int a) { if(a == 1) return 1; return ((MOD - MOD / a) * ...
- ACM配置指南
Ubuntu桌面入门指南 ACM比赛系统ubuntu 使用指南 ACM核武器 简明 Vim 练级攻略 Vim命令合集 代码编辑神器VIM(附我写acm程序时的配置) my_vimrc in ubunt ...
- SCNU ACM 2016新生赛决赛 解题报告
新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...
- SCNU ACM 2016新生赛初赛 解题报告
新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...
- acm结束了
最后一场比赛打完了.之前为了记录一些题目,开了这个博客,现在结束了acm,这个博客之后也不再更新了. 大家继续加油!
- 关于ACM的总结
看了不少大神的退役帖,今天终于要本弱装一波逼祭奠一下我关于ACM的回忆. 从大二上开始接触到大三下结束,接近两年的时间,对于大神们来说两年的确算不上时间,然而对于本弱来说就是大学的一半时光.大一的懵懂 ...
- 第一届山东省ACM——Phone Number(java)
Description We know that if a phone number A is another phone number B’s prefix, B is not able to be ...
- 第一届山东省ACM——Balloons(java)
Description Both Saya and Kudo like balloons. One day, they heard that in the central park, there wi ...
- ACM之鸡血篇
一匹黑马的诞生 故事还要从南京现场赛讲起,话说这次现场赛,各路ACM英雄豪杰齐聚南京,为争取亚洲总舵南京分舵舵主之职位,都使出了看 家本领,其中有最有实力的有京城两大帮清华帮,北大帮,南郡三大派上交派 ...
随机推荐
- 【SICP读书笔记(三)】练习2.18 --- 表序列的reverse方法
来自练习2.18 请定义出过程reverse,它以一个表为参数,返回的表中所包含的元素与参数表相同,但排列顺序与参数表相反: (reverse (list 1 4 9 16 25)) (25 16 9 ...
- PV操作——生产者和消费者
首先,先来看几个概念: 同步:协作的过程,比如,多人开发合作. 相互排斥:争抢资源的过程.比如苦逼的大学选课: 临界区:进程中对临界资源实施操作的那段程序: 临界资源:一次仅仅能一个进程使用的资源,比 ...
- effective c++ 条款26 postpone variable definition as long as possible
因为构造和析构函数有开销,所以也许前面定义了,还没用函数就退出了. 所以比较好的方法是用到了才定义.
- Codeforces 385B Bear and Strings
题目链接:Codeforces 385B Bear and Strings 记录下每一个bear的起始位置和终止位置,然后扫一遍记录下来的结构体数组,过程中用一个变量记录上一个扫过的位置,用来去重. ...
- UVa 524 Prime Ring Problem(DFS , 回溯)
题意 把1到n这n个数以1为首位围成一圈 输出全部满足随意相邻两数之和均为素数的全部排列 直接枚举排列看是否符合肯定会超时的 n最大为16 利用回溯法 边生成边推断 就要快非常多了 #inc ...
- Python 显示LinkedIn用户作业
CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-8-18 @author: guaguastd @name: j ...
- JAVA经BigDecimal圆角的解决方案及注意事项
/** * @Description: 四舍五入住宿2小数位数 * @param valueName * @return */ public static Double formateDouble45 ...
- IIS使用 URL Rewrite Module 2.0组件 设置伪静态的方法
简体中文版WIn10无法安装,需要改注册表, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp MajorVersion 项,这个也是 dword 值 10 ...
- 开源:矿Android新闻client,快、小、支持离线阅读、操作简单、内容丰富,形式多样展示、的信息量、全功能 等待(离开码邮箱)
分享:矿Android新闻client.快.小.支持离线阅读.操作简单.内容丰富,形式多样展示.的信息量.全功能 等待(离开码邮箱) 历时30天我为了开发这个新闻clientAPP,下面简称觅闻 ht ...
- android 联系数据库
联系人数据库学习 2011-10-31(这是android2.3在接触db) 简单介绍 Android中联系人的信息都是存储在一个叫contacts2.db的数据库中.该数据库的路径是:/data/d ...