悬 4 关,求调!
查看原帖
悬 4 关,求调!
1001535
封禁用户楼主2024/8/21 13:47
#include <bits/stdc++.h>
using namespace std;
int t;
int n, m;
string s;
int ans;
int sum;
bool f;
int g;
int hh;
bool j;
bool p;
int main() {
	cin >> t;
	while (t--) {
		sum = 0;
		j = 0;
		g = 0;
		f = 0;
		p = 0;
		ans = 0;
		cin >> n >> m;
		cin >> s;
		for (int i = 0 ; i < m; i++) {
			if (s[i] == '1') hh++;
		}
		for (int i = 0; i < m; i++) {
			if (s[i] == '0')ans++;
			if (s[i] == '1' && i != 0) {
				p=1;
				g++;
				if (hh <= 2) {
					if (g == 1) sum = ans;
					if (ans != sum && g == 2) {
						cout << "No\n";
						f = 1;
						break;
					}
				}
//				if(g == 1) sum = ans;
				if (sum != ans && g >= 3) {
					f = 1;
					cout << "No\n";
					break;
				} else if (g <= 2) sum = ans;
				if (ans > n) {
					f = 1;
					cout << "No\n";
					break;
				}
				ans = 0;
			}
		}
		if (f == 1) continue;
		if (sum == 0 && p == 1) {
            if(ans > 0) 
            cout << "No\n";
            continue;
		}
		if (ans > n) {
			cout << "No\n";
			continue;
		}
		cout << "Yes\n";
	}
	return 0;
}
/*
4
5 5 00001
5 4 1010
10 12 000100110000
4 2 00
*/

能给个 hack 吗?

2024/8/21 13:47
加载中...