oj测试点相关 (整理摘编)
- Accepted 通过!(AC)
- Wrong Answer 答案错。(WA)
- Runtime Error 程序运行出错,意外终止等。(RE)
- Time Limit Exceeded 超时。程序没在规定时间内出答案。(TLE)
- Presentation Error 格式错。程序没按规定的格式输出答案。(PE)
- Memory Limit Exceeded 超内存。程序没在规定空间内出答案。(MLE)
- Compile Error 编译错。程序编译不过。(CE)
RE篇
Runtime Error (RE) : 运行时错误,这个一般是程序在运行期间执行了非法的操作造成的。
一、数组是不是开小了?实在不行在Memory Limit允许的前提下开到数据范围的10倍以上。
二、除0错误。有多少高人在这个地方摔跤,甚至一蹶不振!全面检查一下 / 和 % 运算符的右边有没有可能等于 0。
三、数组起始位置。数组最好从 0 开始使用。如果定义a[MAX],就千万不要使用a[MAX]这个值。事实上,这样一般都引发WA。
四、死循环的话一般不报TLE,特别是循环中有数组操作的情况。因为这种情况下通常会出现a[-6569]一类的囧物……RE是理所应当的。死循环的话,就看看循环结束的条件是不是正确。
以下列出常见的错误类型:
- ACCESS_VIOLATION 您的程序想从一些非法的地址空间读取或向其中写入内容。一般例如指针、数组下标越界都会造成这个错误的。
- ARRAY_BOUNDS_EXCEEDED 您的程序试图访问一个超出硬件支持范围的数组单元。
- FLOAT_DENORMAL_OPERAND 进行了一个非正常的浮点操作。一般是由于一个非正常的浮点数参与了浮点操作所引起的,比如这个数的浮点格式不正确。
- FLOAT_DIVIDE_BY_ZERO 浮点数除法出现除数为零的异常。
- FLOAT_OVERFLOW 浮点溢出。要表示的数太大,超出了浮点数的表示范围。
- FLOAT_UNDERFLOW 浮点下溢。要表示的数太小,超出了浮点数的表示范围。
- INTEGER_DIVIDE_BY_ZERO 在进行整数除法的时候出现了除数为零的异常。
- INTEGER_OVERFLOW 整数溢出。要表示的数值太大,超出了整数变量的范围。
- STACK_OVERFLOW 栈溢出。一般是由于无限递归或者在函数里使用了太大的数组变量的原因
WA篇:
一、看看人家的输入数据。是不是把boy的数据安到girl上了,n的值赋给m了……特别是样例中这一对数据还是相等的时候……我都不知道有几次干这样的傻事了。
二、还是输入数据。如果一个测试点里有多组数据,有没有可能比方说sum = 0的时候结果一定为0,而无论后面的数据是什么?这样的话你可能会一个continue转到下一组数据。可是数据流才不会continue,后面没读完的数据理所当然的冲到了最前方,你的程序就这样WA了……
三、初始化。你的初始化正确么?边界条件是0,1,还是kn?
四、循环变量。for的循环变量如果是k,就看看后边用的是不是i。
五、你的智商够不够高,是否考虑到所有的问题了?你可以想办法搞一份AC了的代码,里面写什么连看都不看,之后编写一个“测试数据制造机”,数大,数据多,情况就复杂,就可能出现你没想到的状况,拿两个程序对一下答案就知道了。
六、一定要看discuss,那里面都是几年来前辈们的错误总结。说不定还有又简单又厉害的数据供你使用。
TLE篇
超时了怎么破?↓
||编译部分
40行超级加速命令
#pragma GCC optimize(3,2,1)
#pragma GCC target("avx")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")
||究极の奥义!卡常的究极奥义!
两行浓缩版(实测一次可用
#pragma GCC optimize("Ofast","inline","-ffast-math")
#pragma GCC target("avx,sse2,sse3,sse4,mmx")
#pragma GCC target("avx,sse2,sse3,sse4,mmx")
满堂花醉三千客,一剑霜寒十四州