求调
查看原帖
求调
1125106
11514zbs楼主2024/8/12 22:05
#include <cstdio>
long long t, min, l, r, flag, f, m, max, x, y;
char a[100005];
bool b[100005];
int main()
{
    scanf("%lld", &t);
    while (t--)
    {
        m = 0;
        min = 100005;
        max = 0;
        f = 0;
        flag = 1;
        scanf("%lld %lld %s", &x, &y, a);
        for (int i = 0; i < y; i++)
        {
            b[i] = a[i] - '0';
            if (b[i] && flag)
            {
                m = 0;
                l = i;
                f = 1;
                flag = 0;
                continue;
            }
            else if (b[i])
            {
                m = 0;
                f = 1;
                r = i;
                if (r - l - 1 < min)
                {
                    min = r - l - 1;
                }
                l = i;
                continue;
            }
            if (!(b[i]) && !(f))
            {
                m++;
            }
            else if (!(b[i]))
            {
                m++;
                f = 0;
            }
            if (m > max)
            {
                max = m;
            }
        }
        if (min >= max && max <= x && min <= x)
        {
            printf("Yes\n");
        }
        else
        {
            printf("No\n");
        }
    }
    return 0;
}

2024/8/12 22:05
加载中...