A7692 | [ABC380C] Move Segment
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
给定一个只包含
请输出将 $S$ 中从头开始第 $K$ 个
保证 $S$ 中包含至少 $K$ 个
更为准确的说明如下:
- 用 $S_{l\ldots r}$ 表示 $S$ 的第 $l$ 个字符到第 $r$ 个字符组成的子串。
- $S_{l\ldots r}$ 是
- $S_l = S_{l+1} = \cdots = S_r =$
- $l=1$ 或 $S_{l-1} =$
- $r=N$ 或 $S_{r+1} =$
- 假设 $S$ 中所有的
这时,定义长度为 $N$ 的字符串 $T$ 为“将 $S$ 中从头开始第 $K$ 个
- 当 $1 \leq i \leq r_{K-1}$ 时,$T_i = S_i$
- 当 $r_{K-1}+1 \leq i \leq r_{K-1}+(r_K-l_K)+1$ 时,$T_i = $
- 当 $r_{K-1}+(r_K-l_K)+2 \leq i \leq r_K$ 时,$T_i = $
- 当 $r_K+1 \leq i \leq N$ 时,$T_i = S_i$
0 和 1 的长度为 $N$ 的字符串 $S$。 请输出将 $S$ 中从头开始第 $K$ 个
1 的连续块移动到第 $K-1$ 个 1 的连续块的后面所得的字符串。保证 $S$ 中包含至少 $K$ 个
1 的连续块。更为准确的说明如下:
- 用 $S_{l\ldots r}$ 表示 $S$ 的第 $l$ 个字符到第 $r$ 个字符组成的子串。
- $S_{l\ldots r}$ 是
1 的连续块,当且仅当满足以下所有条件:- $S_l = S_{l+1} = \cdots = S_r =$
1- $l=1$ 或 $S_{l-1} =$
0- $r=N$ 或 $S_{r+1} =$
0- 假设 $S$ 中所有的
1 的连续块为 $S_{l_1\ldots r_1}, \ldots, S_{l_m\ldots r_m}$,且 $l_1 < \cdots < l_m$。这时,定义长度为 $N$ 的字符串 $T$ 为“将 $S$ 中从头开始第 $K$ 个
1 的连续块移动到第 $K-1$ 个 1 的连续块的后面所得的字符串”,具体如下:- 当 $1 \leq i \leq r_{K-1}$ 时,$T_i = S_i$
- 当 $r_{K-1}+1 \leq i \leq r_{K-1}+(r_K-l_K)+1$ 时,$T_i = $
1- 当 $r_{K-1}+(r_K-l_K)+2 \leq i \leq r_K$ 时,$T_i = $
0- 当 $r_K+1 \leq i \leq N$ 时,$T_i = S_i$
输入格式
输入从标准输入中按以下格式给出。
> $N$ $K$ $S$
> $N$ $K$ $S$
输出格式
请输出答案。
输入输出样例
输入 #1
15 3 010011100011001
输出 #1
010011111000001
输入 #2
10 2 1011111111
输出 #2
1111111110
### 限制条件
- $1 \leq N \leq 5\times 10^5$
- $S$ 是只包含
- $2 \leq K$
- $S$ 中包含至少 $K$ 个
### 样例解释 1
$S$ 中有 $4$ 个
- $1 \leq N \leq 5\times 10^5$
- $S$ 是只包含
0 和 1 的长度为 $N$ 的字符串- $2 \leq K$
- $S$ 中包含至少 $K$ 个
1 的连续块### 样例解释 1
$S$ 中有 $4$ 个
1 的连续块,分别为第 $2$ 个字符到第 $2$ 个字符、第 $5$ 个字符到第 $7$ 个字符、第 $11$ 个字符到第 $12$ 个字符、第 $15$ 个字符到第 $15$ 个字符。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?