1 条题解

  • 0
    @ 2025-7-13 10:44:33

    原博客对解法的描述已经足够详细,因此这里只给出代码。

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        long long T, n, m;
        cin >> T;
        while (T--)
        {
            cin >> n >> m;
            if (n == 1)
            {
                if (m == 0) puts("1");
                else puts("!");
                continue;
            }
            if (m > (n / 2) * (n - n / 2))
            {
                for (int i = 1; i <= n; i++)
                    putchar('!');
                puts("");
                continue;
            }
            for (int i = 1; i <= m / (n / 2); i++)
                putchar('0');
            for (int i = n / 2; i >= m % (n / 2) + 1; i--)
                putchar('1');
            if (m < (n / 2) * (n - n / 2)) putchar('0');
            for (int i = m % (n / 2); i >= 1; i--)
                putchar('1');
            for (int i = n / 2 + m / (n / 2) + 1 + 1; i <= n; i++)
                putchar('0');
            puts("");
        }
        return 0;
    }
    
    • 1

    [Entry U114/T1] 01-strings and 01-subsequences

    信息

    ID
    235
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    3
    已通过
    2
    上传者