AGC065C Avoid Half Sum

不难发现题目等价于:

对于每个 \(a_i\) 构造一个 \(b_i\),满足 \(b_i\le a_i\)\(b_i\equiv a_i(\bmod 2)\),问能否构造 \(b\) 使得无法选出 \(b\) 的一个子集元素之和为 \(\frac{\sum b}{2}\)

此时有充要条件:

\(\exists i\),满足小于 \(a_i\) 的奇数数量 \(g_i<a_{i}-1\),则有解,否则无解。

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

  • 必要性

    即需要证明:

    \(\forall i\),都满足小于 \(a_i\) 的奇数数量 \(g_i\ge a_i-1\),则无解。

    不妨将 \(a_i\) 升序排序,则不难发现 \(\sum_{j=1}^{i-1} b_j\ge b_i-1\)。此时可以归纳证明:

    \(\forall j\in[1,n]\)\(b_1\sim b_j\) 可以表示出 \(0\sim \sum_{i=1}^j b_j\) 的所有值。

    \(j=n\) 时必要性得证。

  • 充分性

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

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

证毕。

posted @ 2023-12-20 18:42  ydtz  阅读(67)  评论(0编辑  收藏  举报