牛客周赛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。
全部评论
相关推荐
查看9道真题和解析 点赞 评论 收藏
分享
点赞 评论 收藏
分享
2025-12-23 12:11
湖北理工学院 前端工程师 点赞 评论 收藏
分享
