💡
原文中文,约2800字,阅读约需7分钟。
📝
内容提要
问题A:判断子串是否几乎平衡。通过枚举删除位置或讨论删除哪边的字符来判断。对于字符集任意的情况,将数字映射成随机uint,判断diff是否是某个字符的映射。代码比A1更简单。问题B:dag dp,用multiset记录dp值。问题C:从n袋饼干中任取k个,问最重的一块饼干来自第一袋的概率。问题D:给定序列和修改操作,问每次修改后至少需要多少次swap操作。D1中可以贪心解决。
🎯
关键要点
-
问题A:判断子串是否几乎平衡,定义为删除一个字符后长度为偶数且前后半段字符出现次数相等。
-
A1中字符集为小写字符,A2中字符集为任意整数。
-
通过判断长度是否为奇数和枚举删除位置来解决,或讨论从哪边删除并比较diff。
-
对于任意字符集,将数字映射为随机uint,判断diff是否为某字符的映射,代码比A1更简单。
-
问题B:将day视为点,client视为边,使用multiset记录dp值。
-
问题C:从n袋饼干中任取k个,问最重的一块饼干来自第一袋的概率。
-
问题D:给定序列和修改操作,问每次修改后至少需要多少次swap操作。
-
D1中可以贪心解决,D2中只允许交换相邻位置。
➡️