为了在联赛中不因为傻逼错误而遗憾。
故总结各种错误集合。
1.变量名,每个变量名的含义搞清楚,不要用错。打的时候变量名千万不能打错。
尤其是n,m,x,y这类,搞反了题目给的是正方型还看不出来。。
可以细读一遍程序,或者多设计几组测试数据。
2.变量的范围。有的时候longint是不行的,要开int64.
有的时候数组开小了会爆,应该两头都开点,尤其是有时a[0]也要开。。。
要学会自己估计范围。
3.注意特殊的情况的判断。
如非负整数要注意0也是其中之一。
还有其他的特殊情况要特殊输出的,要看题目而行。
4.初始化一定要搞。
尤其是子程序里的变量。不搞初始化就会出来非常奇怪的数字。。。
数组重复使用时应该注意清空。
5.写程序之前应该细致的读题,了解题目让你干什么。
然后自己设计出算法,并且在纸上简略的写出如何实现。
再思考程序的正确性,再换其他思维想题目。
千万不能写了一半发现自己想法是错的然后重写。。
6.去年比赛时的day1 T2...写了一个搜索之后,没有继续深入思考如何优化。
而去想如何用线段树来写这个题目。。。还花了半小时想如何写线段树。。。。。
所以考试的时候不要想,也不要轻易写自己没有学过的东西。
如去年day2 T2..当时二分一次都没有写过,居然还敢写二分。。。于是就0分了。。。
如果当时写了个暴力,那我现在就拿到一等了。
7.如果暴力能拿30+以上的题目,而且暴力很好写,那么先写一个暴力。
在思考多种算法后,选择性价比最高的算法,与暴力算法对一些数据验算。
然后小范围数据用暴力确保30分拿手。
8.比赛时第一题必须全部拿下。后面的题目全部爆搜也要拿下第一题。
如去年day2 T1,当时只写了a=b=1的情况,后来发现稍微多加几行代码就能拿100.
而当时我却没有认真思考。
9.fillchar 不能每次都使用。。如果数据开得特别大。。必然会超时。。。
10.floodfill 要向四个方向。。。
11.能直接求和的就别用数组存前缀和了。。。
12.用前缀和搞东西的时候,不要忘了else后面的内容。
for i:=1 to n do if ...then s[i]=.....
else s[i]=s[i-1]
13.有的图是不联通的,此时bfs,dfs前面都要加一重循环。
14.有的题目实在不会写,考虑特殊情况的数据+暴力也许能搞出一个不错的分数。
15.要相信noip的数据异常弱,往往加上一个小优化就能ac了。
16.多设计几组测试数据,基本上就能完全解决因粗心而产生的错误了。
17.在按f9之前先读一遍程序,将打错的地方都补上。确保每一句话都是正确的。
18.要注意计算时溢出的情况,c:=a*b;a,b 都是 longint,c 是int64
那么返回值会是longint。。
1537

被折叠的 条评论
为什么被折叠?



