各种错误提示(WA,MLE等)及解决方法
2025-07-27 18:28:05
发布于:广东
1.WA:输出答案错误(比如累加变量未初始化) 解决方法:检查并修改程序
样例:
int s;//s未初始化 -> int s=0;
if(a==x){
s++;
}
cout<<s;
2.PE:输出格式错误(少空格或换行) 解决方法: 检查输出
样例:
题目输出要求: a b
cout<<a<<b -> cout<<a<<' '<<b;
3.RE:运行错误(数组开小了、除法运算时除了0等)解决方法:检查数组大小、除法算式
样例:
int a[100];//开小了 -> int a[100000+10];
数据范围 1-10000
4.TLE:运行超时(死循环或算法复杂度过大)解决方法:检查循环或优化算法
样例 :
1.
for(int i=1;i<=5;i++){
for(int j=1;j<=10;i++){//死循环 -> for(int j=1;j<=10;j++)
cout<<j;
}
}
2.
for(int i=1;i<=n/5;i++){
for(int i=j;j<=n/3;j++){ //(来自《n钱买n鸡》)算法复杂度过大
for(int z=1;z<=n;z++){ -> int z=(n-i*5+j*3)*3
if(i+j+z==n){
}
}
}
5<=n<=100000
5.OLE:输出超限(可能是循环内有输出) 解决方法: 检查循环,看是否有多余的输出
样例:
for(int i=1;i<=n;i++){
for(int i=1;i<=n;i++){
cin>>a[i][j];
cout<<a[i][j];
}
cout<<i;
}
6.MLE:内存超限(可能是数组开大了) 解决方法:检查数组大小
样例:
int a[1000000];//数组开大了(一维数组最大的大小: 1000000)
这里空空如也
有帮助,赞一个