CF2089D.Conditional Operators
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在 C++ 中,条件运算符 ?: 的使用规则为:表达式 x?y:z 的值为 $$y$$(若 $$x$$ 为真)或 $$z$$(若 $$x$$ 为假)。其中 $$x$$、$$y$$ 和 $$z$$ 可以是任意表达式。该运算符具有右结合性,即 a?b:c?d:e 等价于 a?b:(c?d:e)。数值 $$0$$ 表示假,$$1$$ 表示真。
给定一个长度为 $$2n+1$$ 的二进制字符串,请判断在插入 $$n$$ 个条件运算符后,该表达式能否计算结果为 $$1$$。允许使用括号。例如,字符串 10101 可被转换为 (1?0:1)?0:1,其计算结果为 $$1$$。
输入格式
第一行包含一个整数 $$t$$($$1≤t≤10000$$),表示测试用例数量。
每个测试用例的第一行包含一个整数 $$n$$($$1≤n≤1.5⋅105$$)。
每个测试用例的第二行包含一个长度为 $$2n+1$$ 的二进制字符串。
保证所有测试用例的 $$n$$ 之和不超过 $$1.5⋅105$$。
输出格式
对于每个测试用例:
- 若该字符串可被转换为结果为 $$1$$ 的表达式,则在第一行输出
Yes,并在第二行输出该表达式。允许使用括号,但必须保持原字符串字符顺序,且表达式长度不超过 $$10n+1000$$。 - 否则,在第一行输出
No。
输入输出样例
输入#1
2 2 10101 2 00000
输出#1
Yes (1?0:1)?(0):1 No
说明/提示
第一个测试用例对应题目描述中的示例。
第二个测试用例中,无论如何插入条件运算符,结果始终为 $$0$$。
翻译由 DeepSeek R1 完成
输入解题思路,AI测评打分。不知道怎么写?