需要注意的地方

1.输出无解情况。

2.输出时注意是否要加一些提示语句(如'ans='),另外注意大小写以及空格。

3.要求分行输出时记得考虑输出满一行的情况。

4.交程序时要删去调试的语句

5.有时输出的答案错误可能是数组开小了变量范围小了

6.一些变量名要避免重复使用,如我喜欢将t用来做排序的媒介,又用来统计数组元素个数,这样在排序时会201。

7.做完一题要检查数组范围是否足够,要不要用int64等。

8.小心有多组数据

 

1.对于问题,如果较难,先从暴力方法想起,联系学过的知识,不断进行优化。

2。

2.可以将问题分开讨论,分为多个部分解决

4.考虑每个元素对答案的影响。

 

 

考试策略

1.草稿纸一定要把需要的式子,每个数组的含义写清楚,把过程提前写好。

2.仔细读题,不要看错题!!!!!

3.把能拿的分拿到

 

细心

1.如果多个过程使用同一种操作,修改的时候要记得全部改过来

 

数据范围

1.要看清给的是实数还是整数。

 

文件

1.有的文件名单词后面有s,如windows.pas

 

变量

1.注意int64

2.数组范围不要搞错啊啊啊,不要随手写一个等以后来改。

3.如果数据很大,而要求用int64,则除循环变量外其它参与计算的变量都应定义为int64,

如果两个数相乘结果超过maxlongint,则若用longint存这两个数,虽然你相乘用int64存,仍然会爆,必须两个数和结果都用int64存

4.注意在函数过程中,一个变量同时在主程序和过程中定义了,那么它就被认为是局部变量,所以一个变量要在过程中使用,又要在主程序中输出,则不要再函数过程中定义了。

5.int64速度很慢,在大规模数据处理时最好不用(除非存不下)

6.少用ansistring

 

数字处理

1.对于最简分数,要考虑分母为1,或分子为0的情况。

 

字符串处理

1.注意输入的字符串开头和结尾有没有动手脚

2.不要把没赋值的n当作length(S)

 

 输入输出

1.不要忘记删调试的东西!!!!很关键

2.不要忘记看一看有没有ans=这类东西

3.多组数据

4.无解情况

 

与或关系

1.IF中 A or B and C 和 (A or B) and C是不同的!

前者只要B满足了就行,而后者B满足了还必须C满足才行

 

函数过程

1.函数过程中用到的i一定要在过程里面定义,否则会混乱

2.过程中用到的统计变量如果在主程序中定义的,在过程中用前要赋值为0,否则会变成很大数字(我也不知道)

 

滚动数组 

1.每次循环都要将当前这一层数组清空一次

 

最短路

1.SPFA队列不要开小了,除非用循环队列。

2.floyd要记得处理f[i,i]的情况,一般设为0,最好不加(i<>j)and(j<>K)and(i<>k)

 

并查集

1.写非递归路径压缩时不要忘记返回祖先的标号

2.并查集节点的一切操作不要忘了find祖先

3.注意点是1~n还是0~n-1

4.不要忘记开始时f[i]:=i初始化  

 

 宽搜

1.一般都要判重,记得把队列以一个节点也加入判重数组

 

动态规划

1.初值要注意如果有负数不可用-inf,最好div2,或者用int64

2.01背包要注意,如果代价有负数,必须分类讨论

for i:=1 to n do

if v[i]>=0 then for j:=max downto min do...

else for j:=min to max do

对于负数,只有这样才能保证是由上一层的转移得到

 

线段树

1.不要忘记当不再往子节点处理时要exit

2.不要忘记build,自己老是,欢快地写完查询修改后忘记建树

3.不要忘记上传操作,用子节点修改父节点,尤其对于比较复杂的数据维护,上传可能不太好写。

4.延迟标记含义是当前节点已被修改,而子节点没修改,故放标记时,先将该节点值整体修改,再放标记,下传时

两个子节点都是先修改,后放标记,别忘了父节点标记清空。

5.由上,如果对区间加上一个值,则放标记时也是加上一个值。对于区间求和,延迟标记是b[p]=b[p]+v而不是b[p]=v切记

6.注意下传标记的节点不能是叶节点,故下传时判断l<r。

 

 欧拉函数

1.不要忘记在统计1~n序列中gcd=1的点对数时对顺序有没有要求如(5,3)和(3,5)算不算一种

如果各自作为一种,要将结果*2,别忘记减1,因为e[1]的值被重复了,(1,1)到过来还是(1,1)

 

 树

1.dfs时,如果y=p^.x,如果y不符合要求,你在continue前要加p:=p^.next;

2.建树时加方向边别忘了

 

错误记录:  

9月12日小测:文件名错误,windows.pas少写了一个s。

9月16日白书贪心poj2393:结果很大没有用int64。

9月17日白书贪心poj1862:小数点后保留三位,看走眼写成两位......

9月23日白书并查集:写非递归路径压缩要记得返回祖先的编号,另外合并时要将该点祖先作为另一点的祖先。

10月25日noip2014联合权值:记录最大值和次大值写错了,发现最大值不是最大时要将它赋予次大值,然后再设为当前这个数,另外mod写错了,一个数减别的数,不能各自取模后再去减,而是应先减再取模。

10月27日poj2387最短路模板:SPFA队列开小了,发现自己太随意,数组随手开一个范围,交的时候还忘了改,习惯不好啊。

11月4日poj3249拓扑排序:用指针时忘记写p指向下一个,定义指针又一次写错,另外本题结果可能为负,不仅dis数组要初值设为负无穷,保存答案的ans也要设为负无穷。

posted @ 2015-02-10 22:18  QTY_YTQ  阅读(254)  评论(0编辑  收藏  举报