NOIP考前注意事项

1.如果遇到需要处理小数(无论什么情况,只要出现了小数),空间足够的情况下用double,详见NOIP2016D2T2蚯蚓,不开double炸穿天。

2.计数时输出结果时用long long。

3.邻接链表存储图的时候first数组初始值一定要memset为-1。

4.数组开够就行了。

5.1既不是素数也不是合数

7.树状数组的lowbit(int x)返回的是x&(-x)而不是(-x)&x

8.在写线段树的时候如果要加lazy标记,则每遍历到一个新的点则应该更新其lazy标记

9.当需要求和的时候如果不知道数据范围建议开long long,(特别是线段树和树状数组)

10.多重循环的变量名一定要分开,血的教训(洛谷3387)QAQ

11.输入时的%lld不要写成%d,改了好久才发现(洛谷3390)QWQ

12.如果题目给的数据的点的编号是从0开始的,for循环时一定要注意!!!(fzoj2106改了好久最后发现时就是这个问题)

13.特殊的卡常技巧:tarjan从n~1缩点

14.求a mod p的逆元的时候如果不确定p是否为质数用扩展欧几里得,不要用费马小定理,特别是中国剩余定理!!!

15.费马小定理(a^(p-1)mod p=1)适用条件:p为质数且gcd(a,p)=1。

16.倍增求lca:当我们将x跳到与y同一层的时候,条件为:if(deep[grand[y][j]]>=deep[x]&&grand[y][j])一定要加&&grand[y][j],QAQ调了一个小时代码,发现这里炸了。

17.用用fread的时候数组一定要开够

18.两个double类型的数进行比较,不能用==,而应该这样写:

1 double eps=1e-8;//eps需要随题意改变
2 bool io_same(double a,double b)
3 {
4     if(b<=a+eps&&b>=a-eps)
5     {
6         return 1;
7     }
8     return 0;
9 }

  到时候直接调用io_same函数查看返回值。

posted @ 2017-11-06 09:02  CuredFishTree  阅读(467)  评论(2编辑  收藏  举报