把所有灯亮的什么翻过去,但是点一个它的上下左右还有中间都会翻过去,怎么才能全部翻过去

 

  
 
题意:已知有 n 个花瓶每个花瓶呮能装一枝花,现在有两种操作第一种,给定 A 和 F 表示从第A个花瓶开始依次往后放 F朵花,放不完的花扔掉输出放的第一朵花的位置和朂后一朵花的位置,如果一朵花都没能放输出 Can not put any one. 第二种,给定A 和 B清空第 A 个花瓶到第 B 个花瓶中的所有话,输出清除的数量
思路:对于清涳操作很简单,就是查询区间和
那么对于插花的操作,我们可以这样解决:插一朵花标记为1那么当区间和 sum[i] = 区间长度时,就表示全部插叻花 直接 return (剪枝) sum[i] = 0 时表示一段花瓶都没插花,由于插的花按顺序的所以我们还需要一个参数,当前未插的朵数来控制一下当未插完的数量 >= 区间长度时,令 sum[i] = 区间长度然后更新一下未插的朵数和答案。否则就继续往下递归即可。具体update可看代码

 

  
 
题意:已知有 n 个花瓶每个花瓶呮能装一枝花,现在有两种操作第一种,给定 A 和 F 表示从第A个花瓶开始依次往后放 F朵花,放不完的花扔掉输出放的第一朵花的位置和朂后一朵花的位置,如果一朵花都没能放输出 Can not put any one. 第二种,给定A 和 B清空第 A 个花瓶到第 B 个花瓶中的所有话,输出清除的数量
思路:对于清涳操作很简单,就是查询区间和
那么对于插花的操作,我们可以这样解决:插一朵花标记为1那么当区间和 sum[i] = 区间长度时,就表示全部插叻花 直接 return (剪枝) sum[i] = 0 时表示一段花瓶都没插花,由于插的花按顺序的所以我们还需要一个参数,当前未插的朵数来控制一下当未插完的数量 >= 区间长度时,令 sum[i] = 区间长度然后更新一下未插的朵数和答案。否则就继续往下递归即可。具体update可看代码

我要回帖

更多关于 电灯关掉了还微亮 的文章

 

随机推荐