欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF2136B.Like the Bitset
Like the Bitset
题目描述
给定一个长度为 的二进制字符串 ,以及一个整数 。
Aquawave 想要构造一个长度为 的排列 ,使得对于所有 且 的下标 ,满足如下条件:
- 对于每一个长度不少于 的区间 (即 )且覆盖位置 (即 ),该区间内的最大元素 中,最大值不能等于 。
注意,对于 的下标 没有上述限制。
请你找出这样一个排列,或者判断不存在这样的排列。
二进制字符串指的是每个字符都是 或 的字符串。
长度为 的排列是一个由 个互不相同的 到 的整数构成的数组,例如 是一个排列,而 不是排列( 出现了两次), 也不是排列(长度为 ,但出现了 )。
输入格式
每组测试数据包含多组测试用例。第一行输入一个整数 (),表示测试用例数量。
每个测试用例的第一行输入两个整数 和 (,),分别表示字符串 的长度和给定的整数。
第二行输入一个长度为 的二进制字符串 ( 或 )。
保证所有测试用例的 之和不超过 。
输出格式
对于每组测试用例:
- 如果存在至少一个满足条件的排列,请:
- 在第一行输出 YES(大小写均可);
- 在第二行输出 个两两不同的整数 (),即你构造的排列。
- 否则输出 NO。
如果存在多组解,输出任意一组均可。
说明/提示
在第一个测试用例中,你可以输出任意长度为 的排列,因为所有 都等于 。
在第二个测试用例中, 是一个合法解,因为:
- 唯一一个 的位置是 ,覆盖 且长度不少于 的区间共有三个,分别为 , 和 ;
- 对于这三个区间,每个区间的最大值都是 ,显然最大值不等于 。
由 ChatGPT 5 翻译
样例
6
2 1
00
4 3
0010
5 2
11011
7 5
1111110
8 4
00101011
10 2
1000000010
YES
1 2
YES
1 4 3 2
NO
NO
YES
6 5 2 3 4 8 1 7
YES
1 2 3 4 5 6 7 9 8 10
在线编程 IDE
建议全屏模式获得最佳体验
键盘快捷键
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |
第 1 行,第 1 列
0 字符
-
最近自测结果
暂未运行
最近递交结果
暂无递交记录