牛客周赛 110 总结

打得很一般,B 可能是 数据范围有点问题,C 没想到怎么处理 MEX,E 处理和为 0 的情况出问题了,总之思维能力和细节的处理能力还是有待提升。

C

知识点:模拟,思维

赛时想着固定左端点,没有想到固定最大值,从而发现选 2 个是最优的。 利用贪心的思想,区间最大值固定下来后考虑怎么处理 MEX。显然这时向左右两边扩展区间的过程中,MEX 是单调不降的。所以区间要尽量的小,只有 2 个数。代码就不难写了。

E

知识点:模拟、计数、前缀和

赛时没想到如何处理和为 0 与和为 9 的倍数的情况,其实和为 0 一定是连续一段 0 的子区间,将连续 0 包含的子区间减去即可。

F

知识点:贪心,猜结论

赛时时间不足,直接放弃了。
现在我们想想这个结论是怎么推出来的。首先这种合并两个相邻数字的操作可以转化为对原数组进行划分。进一步地,假设我们已经将原数组划分为 一共 段,且此时答案 最小,那么每一段的异或和的结果一定包含 。由于划分段数未知,所以考虑怎么简化。由于每一段异或和的结果都包含 ,则我们将奇数个相邻的段合并以后,结果依然包含 。这样的一次能够减少 2 的倍数段且答案不减少,所以说,我们只需将原数组划分为 不大于 2 段,便可求得最终的答案。

牛客周赛总结 文章被收录于专栏

打的牛客周赛总结,远期全部转移至 CSDN(远期,你懂的)。

全部评论

相关推荐

点赞 评论 收藏
分享
牛客96763241...:杭电✌️也是打完招呼,没人回吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务