您的位置:首页 > 其它

[NOIP2017 考前胡写]一年以来犯的各种无脑错误与经验总结

2017-11-10 15:04 225 查看

一些常识

1. double会有精度误差,选eps要适中

如果eps过大显然会爆精度,如果选得过小会导致一系列神奇的问题。

当时在UOJ做去年NOIP的D2T3的时候被hack点卡精度,于是当时一个头脑发热就写出了



于是乎,就发生了美好的事情



还有一次是在某校打模拟赛,一道二分的板子题因为我eps过小就T掉了。。。

2. memset函数并不是O(1)的

RT,它贡献了我在初学点分的时候的大多数TLE



不当时一度以为我被卡常数了。。。

3. 注意模数以及数据大小

模数为1e9+7不代表中间过程不会爆int

还有就是数清楚到底有多少个0,别想都不想直接默认109+7

以及109+7,108+7都是素数,但107+7=941×10627

一些非技术性失误

1. 单词拼写

函数名拼错了还好,编译的时候会报错,但文件名要是拼错了那就真的GG了

2. 记得屏蔽掉调试用语

我亲眼见过一个同学的一个能AC的程序,因为没有屏蔽掉调试用的puts(“ok”),然后FST。

同样地,不该屏蔽掉的东西也不能随便屏蔽。还是在某校的另一场模拟赛,因为屏蔽掉了freopen然后一个80分的暴力直接挂掉

3. 明确变量的含义

有很长一段时间,树的题做多了之后再做一般图论问题,读图的那个循环我都会写成

for(int i=1,u,v;i<n;i++)read(u),read(v),add(u,v);


甚至有的时候Kruskal也会写成那样,然后就各种Debug……

4. 读入优化的负数与初始化

5. 对内存使用的正确估计

在做某数据结构的网传板子题的时候,因为把内存使用的上界估计小了导致数组没开够,然后各种RE。。。

6. bfs时候首元素要入队,取完之后记得pop

前半句导致我一个AC程序无限WA,后半句导致我一个AC程序又T又M

赛场上的相关事项

1. 注意时间分配,在保证有分之前千万不要死肛某一道题

2. 考完了不要对答案,不要上网交流

3. 不会做题别报复社会

去年有个同学不会做题然后写了一句

system("shutdown -f");


还好这对Linux并不管用。

最后呢还是预祝大家++rp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: