落絮飞雁

顺流而下,把梦做完

ACM常用算法

转载自知乎,原作者:王晓。原文链接:http://www.zhihu.com/question/19719698/answer/13045301

 

  • 感谢邀请。
  • 网络上流传的答案有很多,估计提问者也曾经去网上搜过。所以根据自己微薄的经验提点看法。
  • 我ACM初期是训练编码能力,以水题为主(就是没有任何算法,自己靠动脑筋能够实现的),这种题目特点是麻烦,但是不难,30-50道题目就可以了。
  • 然后可以接触一下基础的算法,我感觉搜索方向的比较不错,可以解决很多问题,深搜,广搜,然后各种剪枝能力的锻炼。
  • 搜索感觉不错了就可以去看看贪心,图论,和动态规划方向的了。图论有最短路径,最小生成树,网络流,拓扑排序等等很多,动态规划先去书上看经典例子,最长公共子序列等。各种变形的题目。
  • 数学是ACM中极具杀伤力的武器,我一向很羡慕数学好的队友,精力有限自己数学方面的算法只能说入门。这方面经典的数论,组合数学方面的比较多,计算几何是很重要的,经典模型要熟悉,最近点对,二维三维,凸包以及各种应用。
  • 数据结构方面的就比较多了,基础的堆,栈,队列,并查集,二叉查找树,红黑树,trie树,hash表等等。
  • 用C++参赛的话STL要熟悉,有时候很有帮助,里面的queue,list,map,stack等。
  • ACM到后来算法就成了工具,不断的靠自己意淫一个新的解法来解决问题是最开心的事情了。我们学校ACM一直是一届带一届的,老师只提供经济上的援助,上面的内容是我在大三当队长时教给大一的新队员的入门内容,再深的就靠每个人自己发掘了。

原文标题:ACM常用算法|落絮飞雁的个人网站
原文链接:https://www.luoxufeiyan.com/2014/07/10/acm%e5%b8%b8%e7%94%a8%e7%ae%97%e6%b3%95/
授权协议:创作共用 署名-非商业性使用 2.5 中国大陆
除注明外,本站文章均为原创;转载时请保留上述链接。