zoukankan      html  css  js  c++  java
  • 随笔

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

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

    等等.

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

    看错题了/算法错了

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

    死也想不出来

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

    死也调不出来/拍出错了

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

    注意事项

    • 一定要检查数组大小 (过大/过小)
    • 即使不打对拍, 一定要记得造极限数据
    • 对拍时造数据不能只造大数据 (比如说权值范围过大可能某些错误拍不出来)
    • 根据题目类型不同, 有些题即使过了大样例还是得对拍, 有些题只用造一下极限数据就稳了
    • 遇到奇怪的事情可以仔细思考一下, 说不定可以挖掘出什么性质来
    • 猜结论的时候一定要意识到自己是在猜
    • 及时备份代码, 特别是在一些较大的修改之前
    • 最后几分钟, 检查文件名, 数组大小, 各种常数, 然后编译一下
  • 相关阅读:
    Java: Regular Expressions
    Java: Checked & Unchecked Exceptions
    二叉树的构建和层级打印
    [leetcode] 1032: Stream of Characters: Tries&AC自动机
    [leetcode] 1503: Previous Permutation With One Swap
    robot moving on the surface of a square
    killing rabbits
    Find the longest route with the smallest starting point
    [leetcode] Minimum Number of K Consecutive Bit Flips
    检测设备横屏 || 竖屏的状态
  • 原文地址:https://www.cnblogs.com/wawawa8/p/9362410.html
Copyright © 2011-2022 走看看