85pts WA求调
查看原帖
85pts WA求调
970132
Hero_Broom楼主2024/2/23 19:25
#include<bits/stdc++.h>
using namespace std;
int t,n,m,cnt,cc;
string s;
bool f,ans;
int main(){
	cin>>t;
	f=0;
	while(t--){
		cin>>n>>m>>s;
		cnt=0;
		f=0;
		bool ff=0;
		for(int i=0;i<s.size();i++){
			if(f) cnt++;
			if(s[i]=='1'){
				if(f==0) f=1;
				else{
					ff=1;
					break;
				}
			}
		}
		cnt--;
		cc=0;
		ans=1;
		if(cnt==-1||ff==0){
			if(cnt==-1)
				if(s.size()>=n) ans=0;
			if(ff==1)
				goto loop;
			if(ff==0){
				int ccnt=0;
				for(int i=0;i<s.size();i++){
					if(s[i]=='1') break;
					ccnt++;
				}
				if(ccnt>=n) ans=0;
				if(cnt+1>=n) ans=0;
			}
			goto end_;
		}
		if(cnt>=n){
			ans=0;
			goto end_;
		}
		loop:
		f=0;
		for(int i=0;i<s.size();i++){
			if(s[i]=='1'){
				if(cc!=cnt&&f==1){
					ans=0;
					break;
				}
				else{
					if(f==0){
						f=1;
						if(cc>cnt||cc>=n){
							ans=0;
							break;
						}
					}
					cc=0;
				}
			}
			else cc++;
		}
		if(ans==1&&cc>cnt) ans=0;
		end_:
		cout<<(ans?"Yes\n":"No\n");
	}
}
2024/2/23 19:25
加载中...