昆虫变换问题 问题描述:有 n 只昆虫排成一排,每只昆虫为萤火虫(用 0 表示)或蜜蜂(用 1 表示)。 魔术师每次操作可以将一只萤火虫变为蜜蜂,或将一只蜜蜂变为萤火虫。目标是让所有相邻昆虫的种类都不相同,求最少需要的操作次数。 例如:n = 6;从左至右6只昆虫如下: 将第三只昆虫变为萤火虫,第四只昆虫变为蜜蜂,可以使得所有相邻的昆虫都不相同: 魔术师最少需要变2次。 输入格式 第一行:一个整数 n(2 ≤ n ≤ 1000),表示昆虫数量。 第二行:n 个整数(0 或 1),表示初始排列,数字间用空格隔开。 输出格式 一个整数,表示最少需要的操作次数。 样例输入: 6 0 1 1 0 0 1 样例输出: 2


正确答案:交替排列只有0101…和1010…两种目标。分别统计原串与每个目标的不同位数,取较小值即最少翻转次数。ans=min(sum(a[i]!=i%2),sum(a[i]!=1-i%2))。
试卷来源:202508(第16届)蓝桥杯Python编程青少组(省赛_初/中级)真题