牛客周赛103D
题意:给你一个01字符串,你每次可以选择一个索引将其翻转,问你至少要修改多少才才能使该字符串至少包含3个01或10字符串子串
思路:
分类讨论或者 dp 做法均可。
做法一:dp 做法可参考周赛 102 的 D 题,此题是出题人读错的产物。
做法二:
当序列中存在大于等于
3 个好串,答案为 0。 当序列中存在 2 个好串: 即序列被分成了3个部分 xxxxxyyyyyyxxxx 此形式,所以只需要改变唯一一个非连接点的位置即可达到三个,而对于长度小于等于 4 的两种不满足,所以特判。若序列为 1001 和 0110 答案为 2,否则为 1.
当序列中存在 1 个好串: 即序列被分成了2个部分 xxxxxyyyyy 此形式,所以只需要改变唯一一个非连接点的位置即可达到三个,而对于长度小于等于 4 的两种不满足,所以特判。若序列为 1100 和 0011 答案为 2,否则为 1. 当序列存在 0 个好串: 即序列只存在一个部分 xxxxxxx 的形式,此时序列答案为 2。
思路:
分类讨论或者 dp 做法均可。
做法一:dp 做法可参考周赛 102 的 D 题,此题是出题人读错的产物。
做法二:
当序列中存在大于等于
3 个好串,答案为 0。 当序列中存在 2 个好串: 即序列被分成了3个部分 xxxxxyyyyyyxxxx 此形式,所以只需要改变唯一一个非连接点的位置即可达到三个,而对于长度小于等于 4 的两种不满足,所以特判。若序列为 1001 和 0110 答案为 2,否则为 1.
当序列中存在 1 个好串: 即序列被分成了2个部分 xxxxxyyyyy 此形式,所以只需要改变唯一一个非连接点的位置即可达到三个,而对于长度小于等于 4 的两种不满足,所以特判。若序列为 1100 和 0011 答案为 2,否则为 1. 当序列存在 0 个好串: 即序列只存在一个部分 xxxxxxx 的形式,此时序列答案为 2。
全部评论
相关推荐
点赞 评论 收藏
分享
2025-12-23 10:57
重庆移通学院 Java 同标题,boss上打了几十次招呼,有两个要了简历就没回了,各位大佬可以指点一下我的简历吗?刚做完项目就写了简历,还没有背八股文。佬们,我想找个小厂的实习,面试是问项目多点还是八股文多点,现在该如何准备
牛客77062465...:没实习经历的话基本上都是拷打八股多点
点赞 评论 收藏
分享
程序员余越:这么早实习有必要吗,实习段数和秋招offer质量数量又不是正相关
点赞 评论 收藏
分享
