AT_abc393_d.[ABC393D] Swap to Gather
普及-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个由 0 和 1 组成的长度为 $ N $ 的字符串 $ S $。保证 $ S $ 中至少包含一个 1。
你可以重复以下操作任意次数(包括零次):
- 选择一个满足 $ 1 \leq i \leq N-1 $ 的整数 $ i $,交换 $ S $ 的第 $ i $ 个字符和第 $ i+1 $ 个字符。
求使所有 1 聚集在一起所需的最小操作次数。
这里,所有 1 聚集在一起的定义是:存在整数 $ l, r \ (1 \leq l \leq r \leq N) $,使得对于 $ S $ 的第 $ i $ 个字符,当且仅当 $ l \leq i \leq r $ 时为 1,否则为 0。
输入格式
输入通过标准输入给出,格式如下:
$ N $
$ S $
输出格式
输出答案。
输入输出样例
输入#1
7 0101001
输出#1
3
输入#2
3 100
输出#2
0
输入#3
10 0101001001
输出#3
7
说明/提示
约束条件
- $ 2 \leq N \leq 5 \times 10^5 $
- $ N $ 为整数
- $ S $ 是由
0和1组成的长度为 $ N $ 的字符串 - $ S $ 中至少包含一个
1
样例解释 1
例如,按以下步骤进行 $ 3 $ 次操作后,所有 1 将聚集在一起:
- 选择 $ i=2 $,交换 $ S $ 的第 $ 2 $ 和第 $ 3 $ 个字符,此时 $ S= $
0011001; - 选择 $ i=6 $,交换 $ S $ 的第 $ 6 $ 和第 $ 7 $ 个字符,此时 $ S= $
0011010; - 选择 $ i=5 $,交换 $ S $ 的第 $ 5 $ 和第 $ 6 $ 个字符,此时 $ S= $
0011100。
由于无法在 $ 2 $ 次或更少操作内完成,因此答案为 $ 3 $。
样例解释 2
所有 1 已经聚集在一起,因此无需任何操作。
翻译由 DeepSeek R1 完成
输入解题思路,AI测评打分。不知道怎么写?