今天听了知乎大佬SimonS的一个Live:如何快速攻克传统算法和数据结构?
Live链接 欢迎大家支持
里面有很多受益匪浅的地方,在这里和大家分享一下。
学习算法是否有必要参加ACM算法编程竞赛?
这里给出的答案是一定有必要,不论专科还是本科,无论你在算法方面是否真的有所建树,都建议参加。其中主讲人提到:ACM是未来就业的金牌敲门砖,可想这比赛的含金量是真的高。除此之外,ACM竞赛还可以增加团队高效沟通合作的技能点。
对于要参加ACM竞赛的同学有几点建议
- 动手实践远比看书重要
- 不要在自己觉得过难的知识点上死磕
- 要有自己擅长的方向(DP、数论、图论、计算几何、数据结构)
- 每次解题都要记时和统计提交次数
- 遇到不会的题目不要直接查看别人的代码,如果真的想不起来,可以参考别人的思路,看别人的题解最好是在解决问题以后,这样帮助会更大
作为一名ACMer,现在感觉自己知识储备不太够,怎样高效的练习ACM呢?有没有类似技能树之类的?
相信很多人练着练着就不知道自己应该学习什么了,那么我就借Live的主讲人的经验,给大家分享一下。
初期(校赛及省赛水题难度):
一.基本算法:
枚举. (poj1753,poj2965)
贪心(poj1328,poj2109,poj2586)
递归和分治法.
递推.
构造法.(poj3295)
模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)
二.图算法:
图的深度优先遍历和广度优先遍历.
最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra)
(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)
最小生成树算法(prim,kruskal)
(poj1789,poj2485,poj1258,poj3026)
拓扑排序 (poj109