考试总结及注意事项
考试总结及注意的地方:
首先:
- 别放弃,任何时候别放弃;别吓到,不管题面如何;别慌张,无论什么时候一定要镇静。
- 时间分配很重要,写得快点。
- 不要写错文件名,freopen,输出格式,调试输出变量未删除,取模
- 别想这道题简单还是难,排名怎么样。发挥自己最大的水平。尽量想任何的部分分。
- (不要交空代码,实在不行也要用暴力跑跑)
- 出题人不想让你爆零,就不应该爆零。
- 编译命令,用评测时的编译命令编译一。
- 努力得分。
- 做完一题,做下一题之前,将所有样例都用文件试一遍。
- 每一场比赛都拼命打。
- 认真读题!!!题意,数据范围
- 最后用文件测试一下
- 读完一个题,把想到的一些思路,问题,注意事项都写下来,写代码的时候看看。
- 题目的数据范围可能是由这个做法推出正解做法。
思路:
- 拿到题全读完。(尽量多读几遍题目,不要理解错题意)
- 可以打暴力的想想如何暴力。
- 会正解的想想正解
- 可以打表的尽快打
- 数据结构题 看看是什么数据结构
- 计数题-dp,组合数学(莫比乌斯,burnside,容斥……),
- 图论 网络流,tarjan,
- 思路放开,扩展开,多想想各种做法。各种处理,算法,dp(根据数据范围)
- think twice ,code once 想好(最好证明)思路在打代码。
- 不要局限于一种思路,换种思路,不要被思路困住。
- 对于随机数据,想想随机的做法。
- 脑洞大开,换种思维一些特殊的算法,
-
挖掘性质。
-
- 针对有些数据不要直接不输出。乱搞,随机化(数据随机?),暴力,贪心,特判
- 从大的方面考虑,推式子。简化问题,不要想的太复杂。推式子,发现最终要求什么,模型是什么。
- 读题,当完全没有思路时,回归道题目的本质,看有没有漏下的细节
- 两面考虑,正难则反,换个角度
代码实现,保证代码正确
- 集中注意力写代码,知道每一行每一个变量在干啥。写完后也要读一遍代码。
- 调试bug时,别调出旧bug,多了新bug
- 尽量对拍,对拍时,不要两个错误的程序一起拍(如两个程序的输出格式是复制的,都是错的)
- 注意数据范围,int 与 long long
- 调试:假装给小白讲代码。有趣(看一遍,读一遍,想一遍)
- 用暴力跑10分钟跑较大的样例。
- 确定写不写的性价比,对拍的性价比。
-
跑一下极限数据,看运行时间,输出是否正常(负数,1000000000)。(无法对拍的程序,也要跑一下极限数据,然后看一下输出是否正常)
- 检验long long与mod。
- 输入输出格式
其他:
- 五分钟一个板子,保证不出错。
- 加强码力(既正确又快)。
- 关键字:next,rank,hash,(make),prev,cmath:x1,y1全局,pow
- 调FFT:1212121?
- 对于分类情况很多的地方:(1)静下来仔细想想,把所有情况捋一下;(2)对拍,拍到一个改一个(没有更好办法的时候)
思路总结:
贪心/其他的思路难写 -> 考虑dp
dp想不出 -> 挖掘性质先想状态再想转移判断有无后效性
dp空间开不下 -> 换状态压状态状态剪枝(减少无用状态,保留有用状态)
时间复杂度太大 -> 改枚举顺序数据结构优化
dp:是否满足无后效性,最优子结构
从小到大排还是从大到小排。