acm

本文由swellspirit贡献

ACM

• I can accept failure. but I can't accept not trying. Life is often compared to a marathon, but I think it is more like being a sprinter; long stretches of hard work punctuated by brief moments in which we are given the opportunity to perform at our best. If someone gets the best of me, I try not to let that happen again.(Jordan)

• “参与”与“不参与”两个问题:

– 第一:我能获奖么? – 第二:抛开荣誉,从比赛中学到的东西值得我 花费这么多时间吗?

• 答案:ref:刘汝佳 • 第一个问题比较复杂,靠个人把握 • 第二个问题答案是肯定的,但前提是要视野开阔, 不要把自己局限在一个狭小的空间之内。大家都 知道,ACM-ICPC竞赛要求选手具有一定的理论 知识和实践能力,而且在编程上要求速度和正确 性,但我认为重要的一点是,ACM-ICPC能够拍 样选手实践能力和洞察力,这相对理论和技术而 言更难培养。

• 往往,竞赛题目有着统一的外观和很强的应用背 景,而非专门为竞赛而设计,因此有着对立的体 系和相应的文件。程序设计语言,数据结构,算 法设计方法,计算理论等内容都是经典的计算机 科学分支,而高等数据、数论、组合数学、概率 论、图论、组合游戏论、人工智能、计算几何、 计算机图形学、生物信息学等内容也常见于各类 竞赛中,虽然题目只涉及各学科的一小部分内容, 但是对这些知识的理解和实践将有助于对学科进 行更全面、深入地理解。任何知识的学习都离不 开三个方面:理论、模型和实现。

• 理论部分相对比较容易把握,但要求学习 时一丝不苟,善于总结,抓住本质,主要 培养选手的洞察力。模型部分比较灵活, 富于创造性和启发性,不管是模型的建立 还是求解,都需要大量积累和思考,主要 培养选手的创造力。实现部分比较自由, 也是个人风格的体现,很难有一个固定的 标准,但有很多千人经验和模式可以参考, 主要培养选手的正确性和效率。

• 对于选手来说,ACM-ICPC只是生命中一个 很小的部分,但有心人都可以把这段经历 变得重要而有价值,准备ACM-ICPC的日子 是一段麻醉期,也是最有激情,最快乐的, 通常在这样的时期,与志同道合的人建立 的友情也是最可贵的。

• 1、ACM(1-2年级) • 2、项目(3年级) • 4、工作(google or 微软 or 百度 or QQ or IBM) • 数据结构+算法 =程序 • 计算机应用技术 or 软件工程 专业

学习方法

• 1、看书 数据结构 算法 数学 • 2、做题 PKU ,ZJU,论坛,解题报告 • 3、结合

3.初学者如何进行修炼

• 推荐两个网站

– ace.delos.com/usacogate(USACO)

• • • • • • • • • • • • • • 基本功训练 基本算法讲解、

训练 每个题做出后有讲解、代码 闯关模式 初学者推荐Chapter1-4,Chapter5-6挑战性较强 Algorithm Competition - Single Round Match(SRM) 一个月4次左右,有rating 分两个版(Div I, Div II) 参加人数众多 每次比赛后有详细的解题报告、代码 比赛结束后有Practice Room可以继续做 可以查看每一个人的代码 Forum很热闹,外国人非常乐于助人 有$哦,Room前三

– www.topcoder.com/tc

• 国内题库

– http://acm.pku.edu.cn – http://acm.zju.edu.cn – http://acm.tju.edu.cn – http://acm.hit.edu.cn – http://acm.whu.edu.cn 北京大学 浙江大学 天津大学 哈工大 武汉大学

• 国外题库

– http://acm.timus.ru 数学题较多,OI选手必做 – http://acm.uva.es 国外最大题库,人很多, Forum也很热闹 – http://acm.sgu.ru 题较难

• 建议

– 初学时做一定量的题目打基础 – 针对特定的经典算法,做相应的题目练习 – 过题数并不重要,做题数的排名也不重要

• 参考书

– 算法导论英文版

• 入门级读物

– 初读时,前面的数学部分建立基本概念即可,无需深究 – 算法的正确性证明、复杂度分析一定要扎实掌握(Master Theorem要会用,摊还分析了解) – 数据结构部分理解是关键,一些过于复杂的数据结构对于初学者 并不一定要求实现(红黑树、二项堆、Fibbonacci 堆),但基本 的数据结构一定要熟练掌握,要能熟练实现 – 图论经典算法要熟练掌握 – 动态规划要熟练掌握 – 高级部分只用选学一些

• 参考书

– 算法艺术与信息学竞赛 刘汝佳、黄亮

• 较难 适合有一定基础的同学 • 对于初学者仍然推荐第一章和第三章

• BBS

– acm.pku.edu.cn的Web Board(现在已经龙蛇混杂,最好只作为了 解新信息和讨论题目的渠道) – 各大高校BBS的算法版(分类讨论区->电脑技术->Algorithm(或 ACM、ICPC),精华区往往有很多资料和指南

• 推荐

– – – – – – – – bbs.whu.edu.cn(武大) bbs.zsu.edu.cn(中山) bbs.freecity.cn(浙大) bbs.sjtu.edu.cn(上交) bbs.hit.edu.cn(哈工大) bbs.tju.edu.cn(天大) bbs.nju.edu.cn(南大) bbs.scu.edu.cn(川大)

一般要做到50行以内的程序不用调试、100行以内的二分钟内调试 成功.acm主要是考算法的 ,主要时间是花在思考算法上,不是花在写程序与debug上。 下面给个计划你练练: 第一阶段: 练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己 精简代码, 因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉 显示器都可以把程序打 出来. 1.最短路(Floyd、Dijstra,BellmanFord) 2.最小生成树(先写个prim,kruscal要用并查集,不好写) 3.大数(高精度)加减乘除 4.二分查找. (代码可在五行以内) 5.叉乘、判线段相交、然后写个凸包. 6.BFS、DFS,同时

熟练hash表(要熟,要灵活,代码要简) 7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式. 8. 调用系统的qsort, 技巧很多,慢慢掌握. 9. 任意进制间的转换

ACM练习建议 转

• 第二阶段: 练习复杂一点,但也较常用的算法。 如: 1. 二分图匹配(匈牙利),最小路径覆盖 2. 网络流,最小费用流。 3. 线段树. 4. 并查集。 5. 熟悉动态规划的各个典型:LCS、最长递增子串、三角 剖分、记忆化dp 6.博弈类算法。博弈树,二进制法等。 7.最大团,最大独立集。 8.判断点在多边形内。 9. 差分约束系统. 10. 双向广度搜索、A*算法,最小耗散优先.

• 第三阶段: 前两个阶段是打基础,第三阶段是锻炼在比赛中可以快 速建立模型、想新算法 。这就要平时多做做综合的题型了。 1. 把oibh上的论文看看(大概几百篇的,我只看了一点点, 呵呵)。 2. 平时扫扫zoj上的难题啦,别老做那些不用想的题.(中大 acm的版主经常说我挑简单的来 做:-P ) 3. 多参加网上的比赛,感受一下比赛的气氛,评估自己的 实力. 4. 一道题不要过了就算,问一下人,有更好的算法也打一 下。 5. 做过的题要记好 :-)

我们的游戏规则

• 专题讲座

– 题目类型 数据结构 搜索 动态规划 图论 数学

• 模拟赛+选拔赛 • 我们的时间安排

• You can Shine

转载请注明来自Lvsi‘s home

ACM 入门计划的更多相关文章

  1. ACM进阶计划

    ACM进阶计划ACM队不是为了一场比赛而存在的,为的是队员的整体提高.大学期间,ACM队队员必须要学好的课程有:lC/C++两种语言l高等数学l线性代数l数据结构l离散数学l数据库原理l操作系统原理l ...

  2. [转]ACM进阶计划

    ACM进阶计划  大学期间,ACM队队员必须要学好的课程有: lC/C++两种语言 l高等数学 l线性代数 l数据结构 l离散数学 l数据库原理 l操作系统原理 l计算机组成原理 l人工智能 l编译原 ...

  3. 大牛对ACM入门菜鸟的一些话

    首先就是我为什么要写这么一篇日志.原因很简单,就是因为前几天有个想起步做ACM人很诚恳的问我该如何入门.其实就现在而言,我并不是很想和人再去讨论这样的话题,特别是当我发现我有很多的东西要学的时候,我实 ...

  4. ACM入门步骤(一)

    一般的入门顺序: 0. C语言的基本语法(或者直接开C++也行,当一个java选手可能会更受欢迎,并且以后工作好找,但是难度有点大),[参考书籍:刘汝佳的<算法竞赛入门经典>,C++入门可 ...

  5. ACM入门指南

    本文已经转移到了:http://harryguo.me/2015/11/03/ACM-%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/ 什么是ACM? 想必打开这篇博客的人已 ...

  6. acm入门 杭电1001题 有关溢出的考虑

    最近在尝试做acm试题,刚刚是1001题就把我困住了,这是题目: Problem Description In this problem, your task is to calculate SUM( ...

  7. ACM入门之OJ~

    所谓OJ,顾名思义Online Judge,一个用户提交的程序在Online Judge系统下执行时将受到比较严格的限制,包括运行时间限制,内存使用限制和安全限制等.用户程序执行的结果将被Online ...

  8. 杭电OJ:1089----1096(c++)(ACM入门第一步:所有的输入输出格式)

    1089:输入输出练习的A + B(I) 问题描述 您的任务是计算a + b. 太容易了?!当然!我专门为ACM初学者设计了这个问题. 您一定已经发现某些问题与此标题具有相同的名称,是的,所有这些问题 ...

  9. ACM入门

    1.给n个数字,将它们重新排序得到一个最大的数字 例子 4123 124 56 90--------------90561241235123 124 56 90 9------------990561 ...

随机推荐

  1. style.display table-row与block

    <tr id="js_rowShow" style=" display:none"> </tr> 问题: display:设置成bloc ...

  2. Nginx得知——Hello World模

     Hello World HTTP模 1.构造config ngx_addon_name=ngx_http_mytest_module HTTP_MODULES="$HTTP_MODUL ...

  3. 深入解析_Android的自定义布局

    前言: 这篇文章是前Firefox Android工程师(现在跳槽去Facebook了) Lucas Rocha所写,文中对Android中常用的四种自定义布局方案进行了很好地分析,并结合这四种And ...

  4. 谈谈CListCtrl 扩展风格设置方法-SetExtendedStyle和ModifyStyleEx 比較

    谈谈CListCtrl 扩展风格设置方法 --------------------------------------SetExtendedStyle和ModifyStyleEx 比較 对于刚開始学习 ...

  5. myeclipse如何恢复已删除的文件和代码

    这是一篇文章分享秘诀:myeclipse恢复意外删除的文件和代码 [ 恢复误删文件 ] 今天在写代码的时候,不小心把一个包给删除了,然后这个包下全部的文件都没了,相信非常多人都有类似的经历. 幸好my ...

  6. Gas Station [leetcode] 两个解决方案

    因为gas的总数大于cost总时间.你将能够圈住整个城市. 第一溶液: 如果一開始有足够的油.从位置i出发.到位置k时剩余的油量为L(i,k). 对随意的k.L(i,k)依据i的不同,仅仅相差常数. ...

  7. 【转】d3d的投影矩阵推导

    原帖地址:http://blog.csdn.net/popy007/article/details/4091967 上一篇文章中我们讨论了透视投影变换的原理,分析了OpenGL所使用的透视投影矩阵的生 ...

  8. 弹出式菜单PopMenu

    MainActivity.java public class MainActivity extends Activity implements OnClickListener{ private Pop ...

  9. Paypal-Express Checkout快捷支付方式的android端开发心得(二)

    一.前导 上一篇讲的不是非常好,这里再又一次讲一下. Paypal手机支付有2种形式: 1.Mobile Express Checkout,MEC,快捷支付 2.MPL 假设採用MEC支付方式,这样的 ...

  10. 它们的定义actionbar 并删除留空

    通过他们自己的定义actionbar布局变化actionbar样式,简单而美丽.但有一个细节需要注意的是,高分辨率的问题留空.一般720上述决议,下一次你发现,无论什么样的变化总是会有一个小的布局文件 ...