CF2089D.Conditional Operators

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

在 C++ 中,条件运算符 ?: 的使用规则为:表达式 x?y:z 的值为 $$yy$$(若 $$xx$$ 为真)或 $$zz$$(若 $$xx$$ 为假)。其中 $$xx$$、$$yy$$ 和 $$zz$$ 可以是任意表达式。该运算符具有右结合性,即 a?b:c?d:e 等价于 a?b:(c?d:e)。数值 $$00$$ 表示假,$$11$$ 表示真。

给定一个长度为 $$2n+12n+1$$ 的二进制字符串,请判断在插入 $$nn$$ 个条件运算符后,该表达式能否计算结果为 $$11$$。允许使用括号。例如,字符串 10101 可被转换为 (1?0:1)?0:1,其计算结果为 $$11$$。

输入格式

第一行包含一个整数 $$tt$$($$1≤t≤10 0001 \le t \le 10\,000$$),表示测试用例数量。

每个测试用例的第一行包含一个整数 $$nn$$($$1≤n≤1.5⋅1051 \le n \le 1.5 \cdot 10^5$$)。

每个测试用例的第二行包含一个长度为 $$2n+12n + 1$$ 的二进制字符串。

保证所有测试用例的 $$nn$$ 之和不超过 $$1.5⋅1051.5 \cdot 10^5$$。

输出格式

对于每个测试用例:

  • 若该字符串可被转换为结果为 $$11$$ 的表达式,则在第一行输出 Yes,并在第二行输出该表达式。允许使用括号,但必须保持原字符串字符顺序,且表达式长度不超过 $$10n+100010n + 1000$$。
  • 否则,在第一行输出 No。

输入输出样例

  • 输入#1

    2
    2
    10101
    2
    00000

    输出#1

    Yes
    (1?0:1)?(0):1
    No

说明/提示

第一个测试用例对应题目描述中的示例。

第二个测试用例中,无论如何插入条件运算符,结果始终为 $$00$$。

翻译由 DeepSeek R1 完成

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

首页