AGC065C Avoid Half Sum

不难发现题目等价于:

对于每个 ai 构造一个 bi,满足 biaibiai(mod2),问能否构造 b 使得无法选出 b 的一个子集元素之和为 b2

此时有充要条件:

i,满足小于 ai 的奇数数量 gi<ai1,则有解,否则无解。

若该结论为真则可排序后扫描一遍解决原问题。下面是证明:

  • 必要性

    即需要证明:

    i,都满足小于 ai 的奇数数量 giai1,则无解。

    不妨将 ai 升序排序,则不难发现 j=1i1bjbi1。此时可以归纳证明:

    j[1,n]b1bj 可以表示出 0i=1jbj 的所有值。

    j=n 时必要性得证。

  • 充分性

    下面给出满足该结论时的构造方案。设 A 为满足条件的 ai

    • A 为奇数,不妨令所有 ai 为偶数的 bi 设为 0,所有 ai<A 为奇数的 bi 设为 1,所有 ai>A 为奇数的 bi 设为 A。此时若 1 的数量为奇数则直接有解,否则由于 A1 为偶数,g<A2,故可以让一个 ai 变成 1 使得 1 的数量为奇数,成功构造。
    • A 为偶数,此时若 A 后仍有奇数,可令 A 为其后第一个奇数,转化为上一种情况;否则令前面所有奇数为 1,偶数为 0 即可成功构造。

证毕。

posted @   ydtz  阅读(72)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示