算法学习指导

算法学习指导

ID:20400805

大小:29.26 KB

页数:5页

时间:2018-10-11

算法学习指导_第1页
算法学习指导_第2页
算法学习指导_第3页
算法学习指导_第4页
算法学习指导_第5页
资源描述:

《算法学习指导》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、算法学习指导一位高手对我的建议:  一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的 ,主要时间是花在思考算法上,不是花在写程序与debug上。 下面给个计划你练练: 第一阶段:     练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码, 因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打 出来. 1.最短路(Floyd、Dijstra,BellmanFord) 2.最小生成树(先写个prim,kruscal要用并

2、查集,不好写) 3.大数(高精度)加减乘除 4.二分查找. (代码可在五行以内) 5.叉乘、判线段相交、然后写个凸包. 6.BFS、DFS,同时熟练hash表(要熟,要灵活,代码要简) 7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式. 8. 调用系统的qsort, 技巧很多,慢慢掌握. 9. 任意进制间的转换 第二阶段:     练习复杂一点,但也较常用的算法。 如: 1. 二分图匹配(匈牙利),最小路径覆盖 2. 网络流,最小费用流。 3. 线段树. 4. 并查集。 5. 熟悉动态规划的各

3、个典型:LCS、最长递增子串、三角剖分、记忆化dp 6.博弈类算法。博弈树,二进制法等。 7.最大团,最大独立集。 8.判断点在多边形内。 9. 差分约束系统. 10. 双向广度搜索、A*算法,最小耗散优先. 第三阶段:     前两个阶段是打基础,第三阶段是锻炼在比赛中可以快速建立模型、想新算法 。这就要平时多做做综合的题型了。 1. 把oibh上的论文看看(大概几百篇的,我只看了一点点,呵呵)。 2. 平时扫扫zoj上的难题啦,别老做那些不用想的题.(中大acm的版主经常说我挑简单的来 做:-P ) 

4、3. 多参加网上的比赛,感受一下比赛的气氛,评估自己的实力. 4. 一道题不要过了就算,问一下人,有更好的算法也打一下。 5. 做过的题要记好 :-)  通过简单的排序算法了解最简单的ADT线性表的常用操作;然后要重点掌握递归技术,包括递归和递推的相互转换。通过递归技术了解ADT栈的操作;接着学习搜索法的初步——回溯法,研究经典问题:八皇后问题和走迷宫问题,通过这些经典问题了解深度优先搜索法(DFS)和宽度优先搜索法(BFS)以及ADT栈、ADT队列的操作,要学会利用人工设置堆栈模拟递归;接着可以学习分治

5、法、贪心法这两种常用的策略,并应用到排序、搜素等简单的算法中;这时在开始学习图和数这两种抽象数据类型就应该没有什么难度了。在学习ADT图和ADT树时,要注意结合离散数学中的图论理论知识和搜素法中的DFS,BFS方法,要学会将实际问题转化为图论模型;再下去可以学习各种搜素法的优化算法,启发式搜索、A算法、A*算法或界限剪枝法等;然后是网络流算法,要注意模型的建立;最后学习最优化问题的解法,包括线性规划、动态规划、非线性规划等算法策略,这部分内容主要侧重模型的建立和分析,算法本身并没有难度。这样基本的算法就学

6、习完了。再深入一点可以学习问题的计算复杂性,计算模型,并行算法,神经网络以及各个领域中的算法。联想:首先枚举你关于这个问题能够想到的所有你学过的知识,然后一一往上套看看能否解决手头的问题。我们在思考一个问题的过程中有两种思维形式:·联想:这种思维某种程度上可以说是“混乱”的(虽然从一个更根本的层面上说是有规则的),所谓混乱是指很多时候并不确定联想到的做法最终是否可行,这些联想也许只是基于题目中的某个词语、语法结构、问题的某个切片、一些零星局部的信息。这个过程是试探性的。最后也许有很大一部分被证明是不可行的

7、。很多时候我们解决问题用的都是这种思维,简言之就是首先枚举你关于这个问题能够想到的所有你学过的知识,然后一一往上套看看能否解决手头的问题。这种思维方式受限于人脑联想能力本身的局限性。我在《跟波利亚学解题》中就提到了几个例子。联想本身需要记忆提取的线索,所以受到记忆提取线索的制约,如果线索不足,那怎么也联想不起来。而提取线索的建立又取决于当初保存记忆的时候的加工方法(《找寻逝去的自我》里面有阐述),同时,面对一个问题,你能够从中抽取出来的联想线索又取决于你对问题的认识层度/抽象深度,表浅的线索很可能是无关的

8、,导致无效的联想&试错(《PsychologyofProblemSolving》里面有阐述)。总之,联想这个过程充满了错误的可能。·演绎&归纳:演绎&归纳是另一种思维形式。它们远比联想有根据。其中演绎是严格的,必然的。归纳也是有一定根据的。在面对一个问题的时候,我们有意无意的对问题中的各个条件进行着演绎;譬如福尔摩斯著名的“狗叫”推理——狗+生人=>吠叫&昨晚狗没有叫=>那个人是熟人。就是一个典型的对问题的各个条件进行演绎的推

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。