随便写点什么

省选快要到了。。这说不定就是博主参加的最后一场比赛了

这个博客貌似已经很久很久没有更新了呢,不过真的没有办法,博主因为水平原因实在拿不出什么能和大家分享的知识了(大哭

不过博主倒是有比较丰富的考挂经验,所以决定写写一些注意事项,也算给自己看,不在省选再犯了

于是就有了这篇随笔

1.文件名

大家都清楚文件名打错的后果,所以一定要注意检查多遍

亲身经历:CTS2019 d2t1 fields.cpp

2.空间限制

一般动手写代码之前,如果感觉可能被卡常可以写完再说,如果感觉可能被卡空间,一定要算好/想好如何卡空间再写

首先要用 sizeof(..)/1024/1024 计算空间,如果写了递归之类的东西,最好预留几十MB的空间

压空间的常用方法:数组重复使用,滚动数组,bitset,动态开点垃圾回收,二维数点用kdtree或cdq分治,三个 short 装两个 (10^5) 级别的 int(很少见)

亲身经历:暂时还没有过,希望以后也不要有

3.读题

怎么感觉只有我会读错题。。。

注意题目有没有定义与平时不一样的东西

比如:注意子序列的定义(子串,子序列,连续子序列,还有出题人喜欢用子序列代替子串)

注意奇怪的条件,不一定出现在题面中,也可能是数据范围

亲身经历:csp2019 d1t2 本质不同 的重新定义

4.多测

做了很多多测的题,挂了不知道多少次,总结出来一条经验:不管什么数组都要清空,即使你不清楚上一次使用对下一次使用是否会有影响

但是要注意如果题目只保证了 (sum nle dots) 这样的时候,要部分清空,不可以 memset (cf edu 特色

亲身经历:正式比赛还没有过,模拟赛数不胜数

6.判包

建议写成多个 namespace 避免互相影响

现在的出题人多数会给你测试点编号,这样判包会方便很多,但是如果没给,一定要注意先运行哪个,如果不行再运行哪个,如果写的某个包是乱搞,先看看能不能跑有正确性保证的部分,如果都不行再运行乱搞

比如一个关于无向图的最优化题,写了一个指数级暴力,部分分是树,写了一个不知道对不对的贪心,那么要先判 指数级暴力 的包,即使它是树

越小的包/特判越要注意(特判最好手玩清楚,如果是小范围判断大范围,要和暴力跑一下对上)如果有包含关系会导致一挂全挂

还有就是判断当前测试点属于哪个包,emmm这个就具体题目具体分析吧,应该不会存在什么不可判的

亲身经历:wc2019t1 写挂了8pts的特判

原文地址:https://www.cnblogs.com/crazyzh/p/12403297.html