acm学习指引

一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上。

下面给个计划练练:

第一阶段:练经典常用算法,下面的每个算法打上十到二十遍,同时自己精简代码。因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来.

1.最短路(Floyd、Dijstra,BellmanFord)

2.最小生成树(先写个prim,kruscal要用并查集,不好写)

3.大数(高精度)加减乘除

4.二分查找. (代码可在五行以内)

5.叉乘、判线段相交、然后写个凸包.

6.BFS、DFS,同时熟练hash表(要熟,要灵活,代码要简)

7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式.

8. 调用系统的qsort, 技巧很多,慢慢掌握.

9. 任意进制间的转换

第二阶段:练习复杂一点,但也较常用的算法。

如:

1. 二分图匹配(匈牙利),最小路径覆盖

2. 网络流,最小费用流。

3. 线段树.

4. 并查集。

5. 熟悉动态规划的各个典型:LCS、最长递增子串、三角剖分、记忆化dp

6.博弈类算法。博弈树,二进制法等。

7.最大团,最大独立集。

8.判断点在多边形内。

9. 差分约束系统.

10. 双向广度搜索、A*算法,最小耗散优先.

给学习算法的人一点买书的建议吧。

入门三本:

数据结构与算法》(傅清祥,王晓东编著,我所见过的最好的算法教材)


程序设计导引及在线实践  作者: 李文新


ACM程序设计培训教程 吴昊

基础提高:

算法设计与分析 这是国内牛人王晓东的大作,非常不错的算法书

算法设计与试验题解 王晓东

计算几何-算法设计与分析 周培德

组合数学 第三版 冯舜玺 译

算法艺术与信息学竞赛   刘汝佳的杰作,引导着信息学竞赛的发展

如果算法导论是九阳神功,那这本无疑就是九阴真经。本书是专为参加一些诸如ACM之类程序设计比赛的同学而写的,江湖人称“黑书”。里面讲的都是一些在编程比赛中常用的算法、数据结构,以及一些数论和计算几何等。我虽然并不搞竞赛,但也从此书中受益颇多。

国际信息学奥林匹克竞赛指导— — 实用算法的分析与程序设计   吴文虎 王建德

Introduction to Algorithm 科曼著 传说中的宝典

Algorithms 算法概论

短小精悍,别据一格,准经典之作。一个坏消息: 同算法导论,该书没有习题答案。好消息:习题很经典,难度也适中,只需花点点时间自己也都能做出来。另有中文版名《算法概论》,如果有心的话,还是尽量看原版吧,其实看原版与看中文版花费时间不会相差很大,因为大部分时间其实都花费在做习题上了。

Algorithm Design 算法设计

《程序设计中的组合数学》 吴文虎

《ACM国际大学生程序设计竞赛试题与解析》全部册(吴文虎著,清华大学出版社)

作者:sam 出处:http://www.cnblogs.com/samjustin/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/liubilan/p/9388935.html

时间: 2024-10-12 02:04:27

acm学习指引的相关文章

【转】程序员英语学习指引

转自互联网 ============= 作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://lucida.me/blog/english-for-programmers/ 概要 这篇文章面向程序员,简要的介绍了一些学习计算机专业英语的步骤和经验. 关于 之前不少人曾站内我如何学习英语,我也曾试图写一篇如何学习英语的博文,但我现在的实力着实无法写出令人信服的文章: 尽管阅读.写作和听力还可以,但口语很差——我指的是日常用语,即便出国一年,现在我和同事交流

ACM学习-图双连通子图

// ACM学习-割点和桥.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include<queue> #include<vector> #include<algorithm> using namespace std; const int v = 13; int edge[v][v] = { { 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0

ACM学习历程—HDU 4726 Kia&#39;s Calculation( 贪心&amp;&amp;计数排序)

DescriptionDoctor Ghee is teaching Kia how to calculate the sum of two integers. But Kia is so careless and alway forget to carry a number when the sum of two digits exceeds 9. For example, when she calculates 4567+5789, she will get 9246, and for 12

ACM学习历程—HDU 5023 A Corrupt Mayor&#39;s Performance Art(广州赛区网赛)(线段树)

Problem Description Corrupt governors always find ways to get dirty money. Paint something, then sell the worthless painting at a high price to someone who wants to bribe him/her on an auction, this seemed a safe way for mayor X to make money. Becaus

ACM学习参考资料

ACM学习参考资料 各种图论模型及其解答

Chromium学习指引

面对复杂如操作系统的一个工程,我们应该如何学习,学习什么,从哪里入手?下面是一篇学习指引: 关于Chromium code base,有许多需要学习的,宏观层次比如:进程及其相互之间的关系,IPC如何工作,URL加载流程:微观层次比如:智能指针,消息循环,线程用法,线程模型,string等的使用指引. 学习Chromium的"行为处事": 编码风格:http://www.chromium.org/developers/coding-style:如果你有其它编码经验,你可能会觉得chro

ACM 学习心得

ACM 学习心得 STL:完美的艺术品 STL 由四大部分组成:算法.容器.迭代器.仿函数. 算法(algorithm) 算法定义了一组与实现无关的操作,也是 ACM 学习的核心.C++ 算法库的内容全都是一些比较基本的算法,包括移动.转换.遍历.删除.过滤等等.C++ 算法库本身是基于抽象的,在迭代器的抽象下,使得这些算法可以在不同结构的容器中重用.一个比较坑的地方就是我高中的时候学完 C++ 之后报名了 NOIP.那一年刚刚允许用 STL(之前一直不准用),然后我对于标准库的依赖很严重,连快

程序员英语学习指引

原文链接:http://lucida.me/blog/english-for-programmers/ 概要 这篇文章面向程序员,简要的介绍了一些学习计算机专业英语的步骤和经验. 关于 之前不少人曾站内我如何学习英语,我也曾试图写一篇如何学习英语的博文,但我现在的实力着实无法写出令人信服的文章: 尽管阅读.写作和听力还可以,但口语很差——我指的是日常用语,即便出国一年,现在我和同事交流时仍然磕磕巴巴,不知道用什么词的情况经常出现: 尽管读过大量外文资料,但它们绝大多是计算机专业书籍和论文,并不适

ACM学习资料整理

ACM学习资料整理 声明:参考泥瓦匠BYSocket.POJ题目分类推荐 (很好很有层次感)整理所得 1 推荐题库 ?http://ace.delos.com/usaco/ 美国的OI 题库,如果是刚入门的新手,可以尝试先把它刷通,能够学到几乎全部的基础算法极其优化,全部的题解及标程还有题目翻译可以baidu 一个叫NOCOW 的网站.   ?http://livearchive.onlinejudge.org/ 上面有全部的赛区真题,绝大部分都可以提交,不适合当题库刷,不过在这里找题非常方便.