ACM学习总结


   接触ACM四个月零20天,在HDU做了291题,在PKU做了40题,在浙大也做了20题左右吧,还有专门为了看某个题目而在个别OJ上也做了一些题目,加起来也有10来道的的样子。除了回家两次20天左右和个别时间去陪女朋友没做题看书,其它时间基本上是坚持每天AC的。去其实做了多少题目并不是最重要的,重要的是学到了什么,让我总结一下。  (暂停AC,寒假集训的时候或集训前几天复出,期待寒假集训取得更大的突破,也期待林学院涌现出更多高手来,但是也欢迎网友有好的问题能跟我讨论讨论,让我学习学习)
 
1、学到的算法小结:
掌握的非常熟悉的算法:
   简单的动态规划:包括思考问题的方式和角度,能从简单的问题中提取出动态规划的状态转移方程,关于矩阵内部运算的DP问题比较熟悉,对常见的动态规划问题和经典问题也有一定的了解。
   比较简单的贪心:贪心与其说是一种算法,更是一种思想。在构造最优解的每一步过程中,都在构造局部最优解,解这类问题关键是找到最优策略,并分析最优子结构能否构造全局最优解。
   生成函数问题:稍微想几秒钟能马上把模板给写出来。
   大数高精度问题,没什么技术含量,主要是细心,耐心。主要是在具体问题中要区分出哪些问题是大数问题。还有就是代码的简化。
   PRIME算法求最小生成树,闭着眼睛可以写出来,其实也是贪心思想的应用吧。
   求素数时用的筛法,能简化代码,并熟练运用。
   打表方法。
  欧几里德算法。
   调用sort排序。
   组合数学上的catalan数的思想。
比较熟练的算法:
   最短路的DIJKSTRA。 
   欧几里德算法的推广,用于解不定方程。
   二分图最大匹配的匈牙利方法。
   最大独立集,最小路径覆盖等二分匹配的变种问题。
   关系论图论中的拓扑排序。
   二叉树的应用:判定树。
  对数log的思想解决数论中的一些问题。
   一些排序算法。
   深度优先搜索的思想。
   回朔搜索的思想。
  二分与分治思想。
   搜索中的剪枝技巧。
   递规方法以及思想。
   运用离散数学中的一些数理逻辑、简单图论、简单数论解决一些问题。
   组合数学的一些思想方法:fabonacci数列问题、递推方法、排列组合算法的运用。
   博弈论简单问题的分析:巴什博弈,尼姆博弈,巴什博弈。
  判断线段相交的跨立实验。
有些了解的算法:
  STL的使用:自己学过一点,但是用的不多。
  最短路的floyed算法
  最小生成树的kruscal算法
  并查集的思想。
  线段树求解RMP问题
  凸包
注:还有好多很杂的问题难以归类。比如数学上的各种公式,它们思想的由来都值得研究。
 
2、编程水平的提升:
  感觉根据算法直接写代码的能力强了很多,对稍微复杂问题的分析能力,解决问题能力得到了全面的提升。还有就是编程中出现的BUG越来越少了。熟悉很多有用的函数,对字符串的处理能力,简化代码的能力,调试代码的能力都提升了一个档次。
3、算法设计能力
  好多问题时没有算法,但是你也必须寻求解决问题的办法。比如说我会PRIME之前自己就写过这个算法,但是是在写完知道才发现自己用的就是那个算法。分析问题,设计结构,特别是时间内存使用效率的把握上,有很大的进步。还有能对一些算法以及思想灵活运用,能写出比平常的算法复杂度更低的算法。但是根据现有的较复杂算法实现代码的能力还是不足。
4、知识的拓展:
  感觉自己的知识面广了很多,ACM涉及都知识可以广至图论数论博弈论组合数学数据结构算法等等。很多东西是无法归纳到上面某一类中的,区分有用知识和无用知识,还有自学的能力,还有根据所学的知识解决和分析实际问题的能力提高了。
 
寒假集训展望:
   寒假的集训我会把重点花在搜索、图论、运用数学知识解决实际问题上,特别是数论。在其它方面的练习也要更深入一些,力求更熟练,思想运用更灵活。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值