AT_joi2019ho_c.たのしいたのしいたのしい家庭菜園 (Growing Vegetables is Fun 3)

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

JOI 君凭借多年的家庭园艺经验,在自家院子里新种植了一种名为“ジョイ草”的植物。院子里东西方向依次排列着 NN 个花盆,从西侧开始依次编号为 11 到 NN。共有 NN 株ジョイ草,每个花盆里各种植一株。

春天到来时,JOI 君前去查看,发现ジョイ草的叶子出乎意料地呈现出各种颜色。同时,他还注意到ジョイ草的生长并不如预期。JOI 君对此感到疑惑,查阅书籍后得知如下信息:

  • ジョイ草共有 33 种类型,分别长有红色、绿色和黄色的叶子。
  • 如果相同颜色叶子的ジョイ草靠得太近,会抑制它们的生长。

因此,JOI 君决定重新排列ジョイ草,使得相同颜色叶子的ジョイ草不会相邻。此时,JOI 君只能交换相邻的两株ジョイ草。也就是说,每次操作可以任选一个 ii(1≤i≤N−11 \leq i \leq N-1),将第 ii 个花盆和第 i+1i+1 个花盆中的ジョイ草交换。

JOI 君希望用尽可能少的操作次数,使得相同颜色叶子的ジョイ草不再相邻。

给定ジョイ草的数量以及每株ジョイ草叶子的颜色,请编写程序,求出最少需要多少次操作才能实现目标。如果无法实现,请输出 −1-1。

输入格式

输入从标准输入中给出,格式如下:

NN SS

SS 是一个长度为 NN 的字符串,第 ii 个字符(1≤i≤N1 \leq i \leq N)表示第 ii 个花盆中ジョイ草的叶子颜色,红色为 R,绿色为 G,黄色为 Y。

输出格式

输出一个整数,表示最少需要的操作次数。如果无法实现目标,则输出 −1-1。

输入输出样例

  • 输入#1

    5
    RRGYY

    输出#1

    2
  • 输入#2

    6
    RRRRRG

    输出#2

    -1
  • 输入#3

    20
    YYGYYYGGGGRGYYGRGRYG

    输出#3

    8

说明/提示

限制条件

  • 1≤N≤4001 \leq N \leq 400。
  • SS 是长度为 NN 的字符串。
  • SS 的每个字符都是 R、G 或 Y 之一。

子任务

  1. (5 分)N≤15N \leq 15。
  2. (55 分)N≤60N \leq 60。
  3. (15 分)SS 的每个字符都是 R 或 G 之一。
  4. (25 分)无额外限制。

样例说明 1

在本输入样例中,可以如下操作,使得相同颜色的ジョイ草不再相邻:

  • 首先,将第 33 个花盆和第 44 个花盆中的ジョイ草交换。
  • 然后,将第 22 个花盆和第 33 个花盆中的ジョイ草交换。
    这样,ジョイ草的排列变为 RYRGY。无法通过 11 次或更少的操作实现目标,因此输出 22。

样例说明 2

在本输入样例中,无论如何操作,都无法使得相同颜色的ジョイ草不再相邻。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页