感觉做过的题,但是没有思路,求助!
【问题描述】
一条新建立的笔直的街道上有 n 盏路灯,目前正处于调试阶段。路灯只有亮和不亮两种状态,
现在有些灯亮着、有些不亮。小 y 手里有一个不成熟的调试仪器,使用前必须设定一个数值 K,机
器每操作一次恰好使 K 个连续的路灯状态反转(亮变成不亮、不亮变成亮)。
现在,请你编程求出:为了让所有路灯都不亮需要的最少操作次数 M 和对应的最小 K 值。
【输入】
第 1 行为整数 n。
第 2 行为 n 盏路灯的初始状态,状态用“B”和“F”标记,分别表示亮和不亮。
【输出】
输出 2 行,每行 1 个整数。
第 1 行表示最少的操作次数 M,第 2 行表示最小的 K 值。
【输入样例】
7
BBFBFBB
【输出样例】
3
3
【样例解释】
K=3,先反转 1~3 号,再反转 3~5 号,再反转 5~7 号。
【数据范围】
对于 40%的数据满足:n <= 400。
对于 100%的数据满足:1 <= n <= 4000。