1
所有有星星的格子,要么消失,要么移动到 的位置。
我们从上到小,从左到右决定每个地方有没有星星。
如果输入的位置 为空,那么原来这个地方肯定没有星星。
如果这个地方为灰色,那么判断 位置有没有星星(这个位置肯定已经被决策过了),如果有,那么这个位置 可以没有星星(因为要求星星总数最少),如果没有,或者根本没有这个位置,那么位置 就需要有星星。
如果输入的位置 为黑色,那么如果 不存在,或者这个位置肯定没有星星,那么输入不合法。否则, 和 都需要有星星。
2
考虑要求 abb 式的不同子序列个数。
那么显然对于每个数 ,只需要考虑第一次出现的时候,让它作为 abb 中的 a。
我们从后往前扫,记录有多少种数字已经出现了两次(就是作为 abb 中的 b),可以用桶来实现。
那么每当遇到满足上述条件的 时,将这个数字的种数累加即可。
3
该题要求反转一个区间后, 数组有 个位置相同的方案数。
考虑枚举反转的区间的中心,该中心可能是某个位置(区间长度为奇数),也可能是某两个位置的中间(区间长度为偶数)。
两种情况类似,我们这里讨论长度为奇数的情况。
从这个中心往两边扫,设当前区间的左右边界是 和 ,我们只需要比较这两个位置上 数组的相等情况,即可维护出 表示区间 反转后,这段区间中 有多少个相等的位置。
只需要再提前计算 的每个前缀、后缀有多少个相等的位置,就可以得出反转这段区间后,两个数组整体有多少个相等的位置。
累计到桶中,最后输出答案即可。
时间复杂度 ,空间复杂度 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?