ACM入门指南

什么是ACM?

想必打开这篇博客的人已经知道什么是ACM了吧,如果不知道,请自行百度或者谷歌

搞ACM需要学习什么知识?

搜索引擎

这里不是让你设计一个搜索引擎,而是让你学会正确使用搜索引擎,当你有任何不解的时候(包括阅读下文),问问谷歌或者百度,这不只是ACM才需要的技能。

一门编程语言

虽然现在编程语言总类繁多,有些OJ也支持多种语言,不过C++还是搞ACM不二的选择,另外最好也学会使用java,因为无论在什么地方,什么国家,什么网站的比赛,C++和java都是支持的。ACM是算法的比拼,所以并不需要将编程语言钻研过深,毕竟语言只是工具。

良好的英语

ACM是国际比赛,英文交流能力是无可后非的。英文差,但是想搞怎么办?对于这样的问题,我的答案是:请自行学习英语,世上无难事,只怕有心人。

数学能力

算法算法,无论怎样都脱离不了数学。我认为,几何学、线性代数、离散数学、初等数论和微积分是必须掌握的。太多了怎么办?这点请放心,你可以在不断的比赛中积累这些知识。

在哪里可以训练/做题?

可以在OJ上训练

全球有非常多非常多的OJ,即Online Judge,在线评测平台,他们可以将你的代码进行在线评测,来判断正误。推荐的国内的OJ有CDOJ(电子科技大学),POJ(北京大学),HDUOJ(杭州电子科技大学),BNUOJ(北京师范大学)。

如何提交我的代码

我不打算详细讲解,所以可以的话,请看每个OJ的F.A.Qs,英文怎么办?自己想办法。

有没有线上的比赛

国内的线上比赛有HDU的bestcoder,这个是有奖金的比赛,国外的推荐codeforces,会不定期的进行比赛,比赛的难度适合新手(英语较好),另外就是Topcoder,这个是相当有名的比赛,不过入手较为困难,你可以百度或者谷歌相关教程,这里就不详细解释了。这些比赛都有着积分的规则,简单说,你打得好,积分就会上涨,否则下跌。高排名总是被各大公司相中,如Google、阿里等,特别是Topcoder,在这里的高排名相当有价值。

推荐的书籍?

英语我就不推荐了,自己想办法。下列书籍中的任何习题,都推荐去完成。

编程语言类

《C++大学基础教程》作者是Deitel,这个作者所著的编程书籍都是值得学习的。

算法入门类

《挑战程序设计》,《算法竞赛入门经典》作者刘汝佳。

数学类

《组合数学》,《算法导论》,《具体数学》

常见的问题

算法无法理解

多看书,多想,细细琢磨,别人能懂,你也可以。问问老师同学,周围的大牛肯定有人知道。

这道题怎么做,完全不会

碰到不会的题是很正常的事,此时你就需要搜索题解,怎么搜索?当然谷歌百度。

那些家伙为啥那么厉害

勤能补拙,每个大神的背后都有着辛勤的付出。凡事靠坚持,每个人都有着无限的潜能,也许你会看见比你更厉害的大神,但只要你努力,你就是下一个大神。

学习这个会不会占用我很多时间

有得便有失,投入和专注是获得成绩的充要条件。

最后的话

时间不会因为你的犹豫而止步,既然你决定了搞ACM,那么就应当立马开始行动,要知道有很多人已经在你的前面走了很远。

时间: 2024-08-03 21:21:12

ACM入门指南的相关文章

ACM配置指南

ACM配置指南 Ubuntu桌面入门指南 ACM比赛系统ubuntu 使用指南 ACM核武器 简明 Vim 练级攻略 Vim命令合集

Quartz.NET简介及入门指南

Quartz.NET简介 Quartz.NET是一个功能完备的开源调度系统,从最小的应用到大规模的企业系统皆可适用. Quartz.NET是一个纯净的用C#语言编写的.NET类库,是对非常流行的JAVA开源调度框架 Quartz 的移植. 入门指南 本入门指南包括以下内容: 下载 Quartz.NET 安装 Quartz.NET 根据你的特定项目配置 Quartz 启动一个样例程序 下载和安装 你可以下载 zip 文件或使用 Nuget 程序包.Nuget 程序包只包含 Quartz.NET 运

Java程序员的Golang入门指南(上)

Java程序员的Golang入门指南 1.序言 Golang作为一门出身名门望族的编程语言新星,像豆瓣的Redis平台Codis.类Evernote的云笔记leanote等. 1.1 为什么要学习 如果有人说X语言比Y语言好,两方的支持者经常会激烈地争吵.如果你是某种语言老手,你就是那门语言的"传道者",下意识地会保护它.无论承认与否,你都已被困在一个隧道里,你看到的完全是局限的.<肖申克的救赎>对此有很好的注脚: [Red] These walls are funny.

【翻译Autofac的帮助文档】1.入门指南

[写在前面]尝试做完一件工作之外自我觉得有意义的一件事,那就从翻译Autofac的帮助文档吧. 入门指南 将Autofac集成你的应用程序的步骤通常很简单,一般是: 时刻以IOC(控制反转)的思想来规划你的应用程序 在你的Porject中添加Autofac引用 按照如下步骤设计应用程序的启动环节 创建一个ContainerBuilder 向ContainerBuilder注册组件 通过ContainerBuilder的Build()方法获得Container(后续需用到) 在应用程序运行环节时,

Markdown——入门指南

导语: Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用.看到这里请不要被「标记」.「语言」所迷惑,Markdown 的语法十分简单.常用的标记符号也不超过十个,这种相对于更为复杂的 HTML 标记语言来说,Markdown 可谓是十分轻量的,学习成本也不需要太多,且一旦熟悉这种语法规则,会有一劳永逸的效果. Ulysses for Mac 一,认识 Markdown 在刚才的导语里提到,Markdown 是一种用来写作的轻量级「标记语言」

Win32编程API 基础篇 -- 1.入门指南 根据英文教程翻译

入门指南 本教程是关于什么的 本教程的目的是向你介绍使用win32 API编写程序的基础知识(和通用的写法).使用的语言是C,但大多数C++编译器也能成功编译,事实上,教程中的绝大多数内容都适用于任何可以连接API的语言,包括Java.Assembly和Visual Basic:我不会向你呈现任何跟这些语言相关的代码,这需要你在本教程的指导下自己去完成,有一些人在本API的基础上使用其他语言进行编程取得了相当的成功. 本教程不会教你C语言,也不会告诉你怎样去运行你特定的编译器(Borland C

[转载]TFS入门指南

[原文发表地址] Tutorial: Getting Started with TFS in VS2010 [原文发表时间] Wednesday, October 21, 2009 1:00 PM 本月初,我们发布了TFS新基础配置.该配置为建立支持源码管理,工作项和生成(builds)的TFS版本提供了便利. 这是一个好机会将你在VSS(Visual Source Safe)上的资源迁移到TFS,并且还可以选用一些新的特性.现在VS2010 Beta2的正式版已经发布了,下面是该系统的入门指南

编程入门指南

前言 如今编程成为了一个越来越重要的「技能」:作为设计师,懂一些编程可能会帮你更好地理解自己的工作内容:作为创业者,技术创始人的身份则会让你的很多工作显得更容易.而作为刚想入门的新手,面对眼前海量的信息,或许根本不知道从哪里开始:入门轻松度过初级材料的学习后,发现学习越来越困难,陡峭的学习曲线又让你望而却步:你知道如何在页面上打印输出一些文本行,但是你不知道何时该进行一个真正的有用的项目:你不清楚自己还有哪些不知道的东西,你甚至搞不清下一步该学什么. 这篇文章的内容对此不仅会有一些方向性的建议,

物联网操作系统HelloX开发者入门指南

HelloX开发者入门指南 HelloX是聚焦于物联网领域的操作系统开发项目,可以通过百度搜索"HelloX",获取详细信息.当前开发团队正在进一步招募中,欢迎您的了解和加入.如果您希望加入HelloX的开发团队,建议参照下列步骤进行操作: 1.      首先,请亲手熟悉和操作HelloX操作系统,这是我们开发的核心组件之一,所有其它组件(包括后台组件,终端产品等)都围绕HelloX操作系统展开.这一步很容易操作,请从github(github.com/hellox-project/