悬关,20分,样例都过
查看原帖
悬关,20分,样例都过
1444395
McdullWang楼主2025/5/6 13:41

记录

#include <bits/stdc++.h>
using namespace std;
int main(){
    int t;
    cin>>t;
    int n,m;
    string s;
    for(int i=1;i<=t;i++){
        cin>>n>>m>>s;
        int len1=s.size(),s1=0;
        for(int i=0;i<len1;i++){
            if(s[i]=='1'){
                s1++;
            }
        }
        if(s1==0){
            if(len1>n){
                cout<<"No"<<endl;
                continue;
            }else{
                cout<<"Yes"<<endl;
                continue;
            }
        }else if(s1==1){
            int total=0,total1=0;
            for(int i=0;s[i]!='1';i++){
                total++;
            }
            if(total>n){
                cout<<"No"<<endl; 
                continue;
            }
            for(int i=total+2;i<len1;i++){
                total1++;
            }
            if(total1>n){
                cout<<"No"<<endl;
                continue;
            }
            cout<<"Yes"<<endl;
            continue;
        }else{
            int total=0,total1=0,yu=0;
            int b[len1+1]={};
            for(int i=0;s[i]!='1';i++){
                total++;
            }            
            if(total>n){
                cout<<"No"<<endl; 
                continue;
            }
            bool tj=1,y=1;
            for(int i=total+2;tj;i++){
                if(s[i]=='0'&&i!=len1){
                    total1++;
                }else{
                    for(int i=0;i<yu;i++){
                        if(b[i]!=total1){
                            cout<<"No"<<endl;
                            y=0;
                            break;
                        }
                    }
                    if(y==0){
                        break;
                    }
                    b[yu]=total1;
                    yu++;
                    total1=0;
                }
                if(i==len1){
                    tj=0;
                }
            }
            if(y==0){
                continue;
            }
            if(total1>n){
                cout<<"No"<<endl;
                continue;
            }
            cout<<"Yes"<<endl;
            continue;
        }
    }
    return 0;
}
2025/5/6 13:41
加载中...