25pts求调
查看原帖
25pts求调
1341857
Iron_sheets楼主2024/10/5 10:08
#include <bits/stdc++.h>
using namespace std;
bool jiequ(int n, int m, string s)
{
	int one1 = -1, one2 = -1;
	int houzhui0 = 0;
	for (int i = 0; i <= m - 1; i ++)
	{
		if (s[i] == '1' && one1 == -1)
		{
			one1 = i;
		}
		else if (s[i] == '1' && one1 != -1)
		{
			one2 = i;
			break;
		}
	}
	for (int i = s.size() - 1; i >= 0; i --)
	{
		if (s[i] == '1')
		{
			break;
		}
		else
		{
			houzhui0 ++;
		}
	}
	if (one1 == -1)
	{
		return one1 <= n;
	}
	if (one1 != -1 && one2 == -1)
	{
		if (one1 <= n && houzhui0 <= n)
		{
			return true;
		}
		return false;
	}
	if (one1 != -1 && one2 != -1)
	{
		int sum = 0;
		for (int i = one1 + 1; i < one2; i ++)
		{
			sum ++;
			if (sum >= n)
			{
				return false;
			}
		}
		if (one1 <= sum && houzhui0 <= sum)
		{
			return true;
		}
		return false;
	}
}
int main()
{
	int t, n, m;
	string s;
	cin >> t;
	while (t --)
	{
		cin >> n >> m >> s;
		if (jiequ(n, m, s))
		{
			cout << "Yes" << endl;
		}
		else
		{
			cout << "No" << endl;
		}
	}
	return 0;	
} 
2024/10/5 10:08
加载中...