CF2030B.Minimise Oneness

入门

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

对于任意二进制字符串 tt,定义 f(t)f(t) 为 tt 的仅包含 0\mathtt{0} 的非空子序列的数量,定义 g(t)g(t) 为 tt 的包含至少一个 1\mathtt{1} 的非空子序列的数量。

注意,对于 f(t)f(t) 和 g(t)g(t),每个子序列出现多少次就计数多少次。例如,f(000)=7f(\mathtt{000})=7,g(100)=4g(\mathtt{100})=4。

我们定义二进制字符串 tt 的“oneness”为 ∣f(t)−g(t)∣|f(t)-g(t)|,其中对于任意整数 zz,∣z∣|z| 表示 zz 的绝对值。

给定一个正整数 nn,请你构造一个长度为 nn 的二进制字符串 ss,使得其 oneness 尽可能小。如果有多种方案,可以输出任意一种。

注:
∗^{\text{∗}} 二进制字符串是仅由字符 0\mathtt{0} 和 1\mathtt{1} 组成的字符串。
†^{\text{†}} 序列 aa 是序列 bb 的子序列,如果 aa 可以通过删除 bb 的若干(可能为零或全部)元素得到。例如,1011101\mathtt{1011101} 的子序列有 0\mathtt{0}、1\mathtt{1}、11111\mathtt{11111}、0111\mathtt{0111},但没有 000\mathtt{000} 或 11100\mathtt{11100}。

输入格式

第一行包含一个整数 tt(1≤t≤1041 \leq t \leq 10^4),表示测试用例的数量。

每个测试用例仅一行,包含一个整数 nn(1≤n≤2⋅1051 \leq n \leq 2\cdot10^5),表示 ss 的长度。

保证所有测试用例中 nn 的总和不超过 2⋅1052\cdot10^5。

输出格式

对于每个测试用例,输出一行长度为 nn 的二进制字符串 ss。如果有多种答案,输出任意一种即可。

输入输出样例

  • 输入#1

    3
    1
    2
    3

    输出#1

    0
    01
    010

说明/提示

在第一个测试用例中,示例输出 f(t)=1f(t)=1,因为只有一个仅包含 0\mathtt{0} 的子序列(0\mathtt{0}),g(t)=0g(t)=0,因为没有包含至少一个 11 的子序列。oneness 为 ∣1−0∣=1|1-0|=1。输出 1\mathtt{1} 也是正确的,因为其 oneness 为 ∣0−1∣=1|0-1|=1。

在第二个测试用例的示例输出中,f(t)=1f(t)=1,因为只有一个仅包含 0\mathtt{0} 的非空子序列,g(t)=2g(t)=2,因为有两个包含至少一个 11 的非空子序列(01\mathtt{01} 和 1\mathtt{1})。oneness 为 ∣1−2∣=1|1-2|=1。可以证明,对于所有长度为 22 的二进制字符串,oneness 的最小值为 11。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页