QOJ.ac

QOJ

Límite de tiempo: 1 s Límite de memoria: 1024 MB Puntuación total: 100 Hackeable ✓

#17539. 减少无聊

Estadísticas

Moloco 是一家广告技术公司,致力于帮助全球各类企业优化在线广告投放。通过 Moloco 的技术,互联网用户能够看到更相关的广告,广告主也能更有效地进行广告投放。

Jongseo 预测某位用户将访问一个网页总共 $2N$ 次,并希望向该用户展示两种广告(0 号广告和 1 号广告),每种各展示 $N$ 次。如果每次访问时都展示同一种广告,用户可能会产生审美疲劳,从而降低广告效果。因此,他希望通过合理安排这两种广告的顺序来最大化广告效果。

为了量化广告效果,Moloco 的工程师 Jongseo 定义了一个名为“无聊度”的指标。对于 $i \leq j$,从第 $i$ 个到第 $j$ 个广告组成的区间无聊度定义为该区间内 0 号广告数量与 1 号广告数量之差的绝对值。用户最终感受到的无聊度是所有区间无聊度中的最大值。

例如,当广告按 00110110 的顺序排列时,第 $3$ 个到第 $7$ 个广告的无聊度为 $|1 - 4| = 3$。由于该区间的无聊度最大,因此用户最终感受到的无聊度也为 $3$。

虽然通过 Moloco 出色的算法已经找到了提高用户参与度的有效广告排列,但 Jongseo 为了验证“无聊度”这一指标的有效性,试图降低无聊度。然而,由于广告的初始顺序已经确定,为了降低无聊度,他必须通过交换相邻的两个广告来调整顺序,每次交换的成本为 $1$。交换操作可以执行任意多次。

请问将用户最终感受到的无聊度降低到 $K$ 及以下所需的最小成本是多少?

输入

第一行包含两个空格分隔的整数 $N$ 和 $K$。($1 \le K \le N \le 500\,000$)

第二行给出一个长度为 $2N$ 的字符串,由 $N$ 个 0 和 $N$ 个 1 组成,表示初始的广告排列。

输出

输出将无聊度降低到 $K$ 及以下所需的最小成本。

如果给定广告顺序的无聊度已经不超过 $K$,则输出 0

可以证明,对于所有可能的输入,总能将无聊度降低到 $1$。也就是说,答案总是存在的。

样例

输入 1

4 2
00110110

输出 1

1

输入 2

4 2
11110000

输出 2

3

输入 3

4 1
10011001

输出 3

2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.