[蓝桥杯青少年组省赛 2025] 平衡奇偶位置的字符交换

Luogu
IDLGB4377
Time1000ms
Memory512MB
DifficultyP2
贪心2025蓝桥杯青少年组
给定一个字符串 $S$,其中仅包含字符 $\tt A$ 和字符 $\tt B$。你每次可以选择交换两个位置相邻的字符,请计算如果要使奇数位置上(位置从 1 开始)字符 $\tt A$ 的数量等于偶数位置上字符 $\tt A$ 的数量,最少需要进行多少次交换操作。 例如:$S = \tt{AABABA}$,从左往右数,奇数位置上字符 $\tt A$ 的数量为 $1$(位置 $1$),偶数位置上字符 $\tt A$ 的数量为 $3$(位置 $2$、$4$、$6$)。可将位置 $2$ 的字符 $\tt A$ 和位置 $3$ 的字符 $\tt B$ 交换。交换后,奇数位置上字符 $\tt A$ 的数量和偶数位置上字符 $\tt A$ 的数量都为 $2$,满足题目要求,故最少需要交换一次。 ## Input 输入一个字符串 $S$($2 \leq S$ 的长度 $\leq 10^5$),其中仅包含字符 $\tt A$ 和字符 $\tt B$。 ## Output 输出一个整数,表示满足题目要求的最少交换次数,如果无论怎么交换都无法满足题目要求,则输出 $-1$。 [samples]
Samples
Input #1
AABABA
Output #1
1
API Response (JSON)
{
  "problem": {
    "name": "[蓝桥杯青少年组省赛 2025] 平衡奇偶位置的字符交换",
    "description": {
      "content": "给定一个字符串 $S$,其中仅包含字符 $\\tt A$ 和字符 $\\tt B$。你每次可以选择交换两个位置相邻的字符,请计算如果要使奇数位置上(位置从 1 开始)字符 $\\tt A$ 的数量等于偶数位置上字符 $\\tt A$ 的数量,最少需要进行多少次交换操作。 例如:$S = \\tt{AABABA}$,从左往右数,奇数位置上字符 $\\tt A$ 的数量为 $1$(位置 $1$),偶数位置上字符",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P2"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGB4377"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "给定一个字符串 $S$,其中仅包含字符 $\\tt A$ 和字符 $\\tt B$。你每次可以选择交换两个位置相邻的字符,请计算如果要使奇数位置上(位置从 1 开始)字符 $\\tt A$ 的数量等于偶数位置上字符 $\\tt A$ 的数量,最少需要进行多少次交换操作。\n\n例如:$S = \\tt{AABABA}$,从左往右数,奇数位置上字符 $\\tt A$ 的数量为 $1$(位置 $1$),偶数位置上字符...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments