OI赛制小错误集锦
"一失足成千古恨,再回首已百年身"
为了防止这样的小失误导致一道题完蛋,我们特制此专栏收集各种小错误
- 文件名相关
freopen("surreal.in","w",stdout);
解决方法:在交之前先把每个小样例改成这个surreal.in,然后测试,再看看out的答案是否一致
坑点很高
手打输入输出文件名导致打错
还没犯过这样的问题
忘了去掉......0.in就是那个数字
最后测样例的时候改文件名而不是代码...
- 空间相关
一定要算空间一定要算空间!!!
51210241024就能转成空间
一个int4个字节,一个longlong8个字节,__int12816个字节,bool1个字节,char2个字节
就能差不多算出用了多少MB,用size.exe也能测,但是不能解决动态空间...QAQ
多少兆空间个int的空间开不下
128mb限制下只能开16777216个longlong,3e8左右的int
MLE就哭吧
检验方法:size.exe
- 溢出相关
俗称的不开longlong见祖宗
add:读入第一行有两个数
结果一个必须开longlong一个不用开.....
add:i是循环时的变量,结果我们i*i会溢出
解决方法:
下下策:#define int long long
中策:用眼睛审视每个变量是否有溢出的风险
上策:卡着数据范围造组数据,看是不是答案异常
如果必须__int128就哭吧
- 取模相关
和溢出相关是结合的,真正要注意在于mod>1e9的时候
直接取模要注意int必带1ll*
- 编译相关
本地编译器就是吃屎了
改改dev中编译器成64位的
以及sort中的operator一定要加const!!
- 数据分治相关
暴力写挂,如果暴力是的,那一定要跑跑大样例,如果暴力是那么大概率只要算到所有情况就不会爆炸
某些写法导致大数据和小数据不匹配!
就是说类似于开了一个桶,但是这个桶在小数据规模下不会溢出,在大数据规模下会溢出!
- 数据结构相关
开的空间
线段树查询的时候左端点右端点都是0,即边界问题
树链剖分fa1=1,或者dep1=1之类的一个问题
- hash相关
当字符串长很短而字符串很多的时候双模hash也会被卡....
- 存边相关
不知道大家有没有犯过一个叫做多测/多个图的读入但是边的那个变量没有清空??
或者说多次建边但是这个边变量没有初始化
下次一定要注意改掉
- 爆char
即我们不要直接读入字符串进行处理
而是要转换成int再操作
看成
你wc就这么挂的
写了记忆化搜索不分析复杂度
wc就这么挂的
结构体自动对齐

大小为n的地址会对齐到n的倍数
网络流一定要分析图中边数上界!
首先因为我们要memcpy和memset,home数组不能开大了!
但是边数很可能到达,然后就RE了!!
点分治一定要小心求重心过程
建立构造一条链,i向i-1,然后看这条链的每层分治结果是不是对的
然后S是才对!