p10349 TLE了,有什么地方能优化一下吗
查看原帖
p10349 TLE了,有什么地方能优化一下吗
890155
luochenkai楼主2024/4/21 08:18

开O2 TLE+RE,不开O2 更多TLE。

TLE厌氧代码:

#include <iostream>
using namespace std;
bool a[300005];
int num[300005];
int n;
int main(){
	char s;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>s;
		if(s=='P')a[i]=true;
	}
	int l=1,p=n;
	while(l<p){
		while(a[l]==false)l++;
		while(a[p]==true)p--;
		for(int j=l;j<p;j++){
			if(a[j]==true&&a[j+1]==false){
				a[j]=false;
				a[j+1]=true;
				num[j]++;
				num[j+1]++;
				j++;
			}
		}
	}
	for(int k=1;k<=n;k++){
		cout<<num[k]<<" ";
	}
	return 0;
}

可能是循环没有优化好,能给点建议吗?

2024/4/21 08:18
加载中...