【考试总结】2022-07-30
水晶
异或和为 可以通过 个乱选,钦定一个抵消来实现。
那么枚举这 个数字的 ,求 表示前 个数字有奇数/偶数个选择这位填 以及是否有一个选择这位低于上界 的。
转移不再赘述。
根据是含义处理边界,例如 个数字有奇数个当前位是 那么停止枚举
物品
区间答案为 , 表示不选,否则只能选一个
分块。
预处理每个块的左端点开都得后缀每个 都出现了多少次,在 的空间复杂度下可以做到 求一段块中任意元素出现次数
预处理每个块左端点到它开头的后缀的每个前缀的答案,时空复杂度都是
对于区间长度小于根号者暴力,否则先继承询问右端点到询问左端点所在块后面一个的答案,并且把指针从块尾挪到 时动态维护答案即可。
颜色
重量为 的物品提前选上。特判一些边界,比如 大于同号 的和
尝试构造一个选出物品数量最多且总重量 的解:
预选所有重量为负的物品,之后每个正 可以加入,给数量加一,重量 。为负的元素可以给数量减一,给重量加 。贪心使得增量最大,减量最小。于是先从 加入,删除则按照 的顺序
注意这个过程要达到的目的是 数量最大。
当限制变成 时需要进行一些调整。可以发现对于贪心策略得到的选值方案而言,等于 的方案和它在重量上差距在 之间,否则可以通过添加元素来减少这个差量
于是调整的物品数量是 级别的,将背包上界卡到 ,选中的元素可以退下,价值 ,重量是 ,没选中的可以选中,价值重量为 。二进制分组优化即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律