随笔

显然光刷题是没有什么用的, 做完一题之后一定要有一些思考, 比如:

  1. 这样做的动机? (灵光一现当然很好, 但是如果能找到一些通用的动机不是更好吗)
  2. (对于某些题而言) 为什么这样做是对的? (不要忽视证明, 至少可以锻炼思维的严谨性)
  3. 这题可以怎么改? 改了之后怎么做? (很耗时间, 但是也是乐趣所在吧)

等等.

还有很多算法/数据结构不熟或是根本不懂, 所以这方面也要用力搞搞. 要注意的就是学一个不太常用的算法可能当时觉得非常有道理, 过一个月以后就忘了一大半了. 最好还是要好好规划, 学了一个算法之后, 可以过一两个星期之后再做几道题加强一下.

看错题了/算法错了

  • 一定要冷静
  • 不要局限在原来的思路中
  • 算法的错误容易随机/构造出来吗? 如果并不容易, 可以考虑先放一放, 或是打打补丁
  • (认真看题, 提高严谨性)

死也想不出来

  • 一定要冷静
  • 再看一遍题
  • 用力想 (二分答案? 容斥? 单调性? 猜结论?, etc.)
  • 想特殊的部分分
  • 先去做其他题, 或是先拿尽可能多的部分分
  • 想不正确(或是不会证明)但是不容易被卡的方法 (骗分 QAQ)
  • (提高智商)

死也调不出来/拍出错了

  • 一定要冷静
  • 不要只对着最容易出错的地方调
  • 检查题意有没有搞错, 数据有没有错
  • 检查算法的正确性
  • 如果是很难打的题, 实在调不出来, 可以先打个暴力
  • (仔细打代码 + 适当静态差错)

注意事项

  • 一定要检查数组大小 (过大/过小)
  • 即使不打对拍, 一定要记得造极限数据
  • 对拍时造数据不能只造大数据 (比如说权值范围过大可能某些错误拍不出来)
  • 根据题目类型不同, 有些题即使过了大样例还是得对拍, 有些题只用造一下极限数据就稳了
  • 遇到奇怪的事情可以仔细思考一下, 说不定可以挖掘出什么性质来
  • 猜结论的时候一定要意识到自己是在猜
  • 及时备份代码, 特别是在一些较大的修改之前
  • 最后几分钟, 检查文件名, 数组大小, 各种常数, 然后编译一下
原文地址:https://www.cnblogs.com/wawawa8/p/9362410.html