After Summer Training.

来源:互联网 发布:2017年8月份经济数据 编辑:程序博客网 时间:2024/05/29 14:10
*一个算法的初学者. 荒废了大好时光.*

SUMMARY :

  • 可以说是在这次 Summer Training 中才算是比较成体系的接触了大半 acm 需要学习的算法吧. 这些天来思考的最多的应该就是 “为什么别人学习的可以如此之快 (为什么别人ac的如此熟练啊) “
  • 诚然, 有我自身的知识储备不足的一定原因. 好多基础的东西仅限于了解或者知道原理, 并没有敲出来过代码. 不过去掉这些, 恐怕还有一些更底层的方法看上去有一点不太对的样子.
  • 就我而言, 在大学之前并没有认真的学习过编程, 或许在数学课上接触过一些算法, 但是也没有按照 算法比赛 这种方向去思考过任何算法. 所以在 acm 的学习道路上也算是所谓”两眼一抹黑”.
  • 对于算法竞赛这样子, 渐渐的我愿意把写一道题分为两部分, soloving & coding.

SOLVE :

  • 解决问题的方法, 在知识体系完善以后更像是传统的求解理科问题一样. 这个过程并不一定是在纸上或哪里, 但是要在 code 之前将整体的思路都理清楚, 如果时间充足甚至可以将细节一并整理出来. Such as 需要几个变量, 写几个函数, 哪些地方可能可以有常数优化…这些.

CODE :

  • 我更愿意将敲代码的过程类比于写作文. 用明了的代码 a 掉题和用满是补丁的码子过题的心情感觉是不一样的. 在敲代码的时候应当是思路已经完善了以后, 在 coding 的过程中应该只需要思考该如何实现以及实现细节, 而不是仍在纠结算法.

所以, 还是需要增加所谓 “键盘外的时间”.

  • 这其实和我自打小学一年级学了数学以来接触到的解决理工科问题的方法并不太一样. 所以更愿意吧 coding 划归到文科之中.
  • 以前拿到一道题, 根据已知条件一直往下写, 通过学过的公式将已知条件不断扩大 (递推), 或者通过题目需要求得的 target 进行反推 (递归). 总之如果题目在能力可及的范围内的话, 这么来回折腾一定可以得到答案.
  • 然而算法竞赛的考试似乎于此相去甚远.
  • 算法竞赛需要的代码, 更像是一篇文章. 虽然说是能 ac 就好, 但是至于写成什么样子, 优美与否, 影响的是选手自己敲代码时候的心情.

EPILOGUE

    接下来的一段时间当然是学习 mg 老师的代码风格啦, 然后补一补知识点, 将14天的题目补掉. 大概两百道题目想想也是个大工程呢. 加油噢! 

2017-08-18

原创粉丝点击