关于MLE
查看原帖
关于MLE
728666
ZY_85楼主2023/10/30 13:10
在考场中我的代码是:
#include<iostream>
using namespace std;
bool b[1000000500];
int main(){
	int n,ans=-1;
	scanf("%d",&n);
	for(int day=0;;day++){
		int cnt=3;
		bool flag=false;
		for(int indx=1;indx<=n;indx++){
			if(b[indx])continue;
			if(cnt>2){
				cnt=0;
				b[indx]=true;
				flag=true;
				if(indx==n)ans=day+1;
			}
			cnt++;
		}
		if(!flag){
			printf("%d ",day);
			break;
		}
	}
	printf("%d",ans);
	return 0;
}

这份代码在小图灵和洛谷中都是90分左右,但官方评测0分 预估可能是MLE

那么这样应该就可以了?
#include<iostream>
using namespace std;
bool b[1000500];
int main(){
	int n,ans=-1;
	scanf("%d",&n);
	if(n>=1000500)return -1;
	for(int day=0;;day++){
		int cnt=3;
		bool flag=false;
		for(int indx=1;indx<=n;indx++){
			if(b[indx])continue;
			if(cnt>2){
				cnt=0;
				b[indx]=true;
				flag=true;
				if(indx==n)ans=day+1;
			}
			cnt++;
		}
		if(!flag){
			printf("%d ",day);
			break;
		}
	}
	printf("%d",ans);
	return 0;
}

#但是为什么除了官方,其它平台都可以通过且只有最后一点MLE

2023/10/30 13:10
加载中...