坚持写作356持续输出需要动力简友广场

差之毫厘,失之千里

2020-05-24  本文已影响0人  信息学小屋

在信息学竞赛中,会有一些容易掉进去的坑。我给大家总结如下:

1、初始化取值。

如果初值是max的变量,不要轻易赋2147483647等接近极限的值,如果不小心相加的话会溢出。建议赋1e9,或在memset里用63。

2、浮点数精度误差

能不用浮点数尽量不要用浮点数。

别看浮点数能表示很大范围内的数,但是它的精度只有2^52(这里指double),只能表示一个大概的数,很容易出现偏差。

3、哈希有风险

如果出题人想搞个big news,哈希很容易呗卡掉的,所以能不用哈希尽量别用哈希。

4、sqrt不是O(1) 的

比较距离大小的时候可以永距离的平方,也就是不要开根。sqrt真的很慢很慢,NOIp 2017day2t1,我被卡了40分(虽然那时候评测机还是老爷机)。

5、spfa想卡就能卡

这点虽然不会爆零,但是几十分也是分啊。建议用堆优化的迪杰斯特拉(英文不会拼。。)

6、变量命名要谨慎

不要用next等作为变量名,容易本机AC提交CE

7、头文件要写全

memset要cstring(还是string,还是两个都要,记不清了。。),但是日常本机能过编译,我也不知道为什么。

8、大小写要注意区分

我有过脑子不好使,定义了一个N,又定义了一个n,然后手滑打错了。

【信息学竞赛从入门到巅峰】,一个专注于分享OI/ACM常用算法及知识的公众号。

上一篇下一篇

猜你喜欢

热点阅读