差之毫厘,失之千里

作者: 信息学小屋 | 来源:发表于2020-05-24 23:31 被阅读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常用算法及知识的公众号。

    相关文章

      网友评论

        本文标题:差之毫厘,失之千里

        本文链接:https://www.haomeiwen.com/subject/gonsahtx.html