CF1415D XOR-gun
给你一个不降的序列,每次可以把两个相邻的数替换成它们的异或结果,问你破坏序列不降最少的操作次数。
这题 n ≤ 1 0 5 n\leq 10^5 n≤105 包括 最少 的限制都是来吓唬你的。
那么一个区间经过若干次操作后就变成了区间的异或和。
所以我们想到 o(n^3) 的暴力枚举:
但是这个复杂度不合理啊,我们可以想到如果三个相邻的数的最高位相同,那么对后两个数操作一次就可以把最高位抵消掉,这样只操作一次必然最优。
简单计算可得序列长度不能超过 30 ∗ 3 = 90 30*3=90 30∗3=90 也就是说 n ≥ 100 n\geq 100 n≥100 直接输出 1 1 1 即可。
总结一下的话,这道题的操作没有什么显然的规律性,所以我们考察一些特定情况对它作一些限制,就会得到复杂度比较低的算法。
再举一例:CF1198C Matching vs Independent Set
这题评分不高但是对构造题理解不深的童鞋难度较大。
首先边和点的规模就决定了大多数图论算法都过不去。
如果你能想到去找一个极大的边独立集的话问题就迎刃而解了。
现在我们有大小为 2 k 2k 2k 的边独立集和 3 n − 2 k 3n-2k 3n−2k 的点独立集(其定义是两两之间无边相连),必有一个可以满足条件。
__EOF__

本文链接:https://www.cnblogs.com/cqbzly/p/17530154.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」