求助月赛T2
查看原帖
求助月赛T2
845988
Shizaki_Crazy_Three楼主2023/8/20 18:08
#include<bits/stdc++.h>
using namespace std;
int main(){
	long long t,n;
	cin>>t;
	char s[1000005],b[1000005];
	while(t--){
		cin>>n;
		scanf("%s",s);
		long long len=strlen(s);
		for(int i=0;i<len;i++) b[i]=s[i];
		long long ans=0,maxx=0;
		for(int i=1;i<=10;i++){
			ans=0;
			for(int i=0;i<len;i++){
				if(s[i]=='T'){
					ans++;
				}else if(s[i]=='B'){
					if(s[i+1]=='T'&&s[i+2]=='T'&&s[i+3]=='B'){
						if(ans<2) ans=2;
						else ans++;
						maxx=max(maxx,ans);
						ans=0;
						s[i]='T';
						s[i+1]=s[i+2]='B';
						s[i+3]='T';
					}else {
						maxx=max(maxx,ans);
						ans=0;
					}
				}
				maxx=max(maxx,ans);
			}
			ans=0;
			for(int i=len-1;i>0;i--){
				if(s[i]=='T'){
					ans++;
				}else if(s[i]=='B'){
					if(i>=3){
						if(s[i-1]=='T'&&s[i-2]=='T'&&s[i-3]=='B'){
						if(ans<2) ans=2;
						else ans++;
						maxx=max(maxx,ans);
						ans=0;
						s[i]='T';
						s[i-1]=s[i-2]='B';
						s[i-3]='T';
					}else {
						maxx=max(maxx,ans);
						ans=0;
					}
					}else {
						maxx=max(maxx,ans);
						ans=0;
					}
				}
				maxx=max(maxx,ans);
			}
		}
		for(int i=0;i<len;i++) s[i]=b[i];
		for(int i=1;i<=10;i++){
			ans=0;
			for(int i=len-1;i>0;i--){
				if(s[i]=='T'){
					ans++;
				}else if(s[i]=='B'){
					if(i>=3){
						if(s[i-1]=='T'&&s[i-2]=='T'&&s[i-3]=='B'){
						if(ans<2) ans=2;
						else ans++;
						maxx=max(maxx,ans);
						ans=0;
						s[i]='T';
						s[i-1]=s[i-2]='B';
						s[i-3]='T';
					}else {
						maxx=max(maxx,ans);
						ans=0;
					}
					}else {
						maxx=max(maxx,ans);
						ans=0;
					}
				}
				maxx=max(maxx,ans);
			}
			ans=0;
			for(int i=0;i<len;i++){
				if(s[i]=='T'){
					ans++;
				}else if(s[i]=='B'){
					if(s[i+1]=='T'&&s[i+2]=='T'&&s[i+3]=='B'){
						if(ans<2) ans=2;
						else ans++;
						maxx=max(maxx,ans);
						ans=0;
						s[i]='T';
						s[i+1]=s[i+2]='B';
						s[i+3]='T';
					}else {
						maxx=max(maxx,ans);
						ans=0;
					}
				}
				maxx=max(maxx,ans);
			}
		}		
		cout<<maxx<<endl;
	}
	return 0;
}

第20个点wa,求hack数据

2023/8/20 18:08
加载中...