求助,卡了好久了
查看原帖
求助,卡了好久了
336424
4A1BF2A6楼主2024/3/20 18:07
int main() {

    int t;
    cin >> t;
    int n,m;
    string s;

    for(int i =0; i<t; i++) {
        bool ans = true;
        cin >> n >> m >> s;
        int flag =0,zeroNums = 0,oneNums = 0,dist = 0;

        int t1 = s.find('1');
        int t2 = s.find('1',t1+1);
        if(t1!=string::npos&&t2!=string::npos) {
            dist = t2-t1-1;

        } else if(t1==string::npos&&t2==string::npos) {
            dist = -1;
        }

        if(dist>n) {
            ans = false;
            cout << "No\n";
            continue;
        } else if(dist == -1) {
            if(s.size()>n) {
                cout << "No\n";
            } else {
                cout << "Yes\n";
            }
            continue;
        }

        int cnt = 0;
        for(int i =0; i<m; i++) {
            if(s[i] == '0') {
                cnt ++;
            } else {
                if(cnt>dist) {
                    ans = false;
                    break;
                }
                cnt = 0;
            }
        }

        if(!ans) {
            cout << "No\n";
        } else {
            cout << "Yes\n";
        }
    }
    return 0;
}



2024/3/20 18:07
加载中...