写在最前:
放松一些,深呼吸,别怕,前路光明。
我已经学习了4个月noip了,这四个月来,几乎天天和电脑碰面。
写过的题也有两三百道了,学习的知识点也有不少了。
我这个新高一,实力还是有的。
想想我做过的题:
开始的时候,我是全班三十多名。
全班只有三十多人。
那时候我为了一个for循环缠着寝室大佬喋喋不休,
为了一个二进制和老师激烈讨论
常常在寝室里冥思苦想。
后来有了一点点进步,成绩开始好转。
灯塔是我第一次在全班前五写出来的题,那时候的我欢呼雀跃像什么样子
后来的飞越田野,全班只有两个人成功飞越了。
洛谷成了我最喜欢的网页,博客园和csdn也出现了我的笔迹。
所以说,别怕,勇敢。
不管考的如何,只要自己尽力了就好。
不管有没有拿省一,要始终充满希望,做一个正能量的人。
考试之前:
写头文件,freopen,快读,建好三个文件夹
把错误提示设为最多
考试时:
把三道题都思考一遍之后,挑选最容易的题下手。
想思路,再用样例验证。
做题前,先把思路在草稿纸上写好,dp状态、方程写好,把细节和特例列出来,一定要列出细节!!想清楚后再开始写题。
把思路想清楚,不要写着写着改。
在一道题上不要耗费太长时间,如果大概10分钟没有思路就换一道题做
在做完一道题或者是陷入思维死角时,去厕所放松一下,在外面呼吸呼吸新鲜空气
实在做不出来时不要慌,想想这道题的暴力写法,暴力打好了就稳了!如果是搜索,想一想可行性和最优性剪枝。
一定要把每道题的暴力打出来,如果有其他思路可以对拍。
最后写完一道题先静态查错,把一些错误先揪出来。然后再对样例。这样的话以免一些小细节写错了未检查出来。
最后十分钟不能再写题了,停下来检查:
每道题的头文件、freopen有无注释掉、快读有无错误,
cpp文件是否已经放入D盘noip下,每个cpp文件是否命名正确。
还有注意事项是:
内存不要超限,int的数组大小*4/1000000是内存!
常用的解法:
遇到数据量特别特别大的,就是推规律或者是公式的数论题目,可以打表找规律;
遇到数据量特别特别小的,可以考虑状压或者random——shuffle;
遇到数据量小的题目,暴力枚举即可,但是要想好细节
遇到求最大值最小就是二分,最优解可以考虑贪心、dp
遇到图论题,认认真真分析他要考什么知识点,是缩点、lca、top、最短路、最小生成树、并查集等等
遇到集中的数据,考虑离散化差分。区间的就是这个+1,那个的下一个-1。树上的就是起点、终点+1,lca-2。然后求一个前缀和。树状数组也可以,就是在上面记录差分后的数组,改也是这个+1,那个的下一个-1,求前缀和。
如果实在不行的话,暴力+分段,贪心,搞一些玄学算法也可以