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测评打分。不知道怎么写?

首页