垫脚石(相关题 → 此题) 一试训练题 · P013412
子集能否由元素和唯一识别,取决于不同选取是否产生同一个和;二进制编码提供基本模型,推广构造时可借奇偶性先识别最低位再递归还原。
编码题使用预定的二次幂权值;存在性题还限制最大元素,不能照搬整套二次幂,而要先找满足界限的基例再保持子集和唯一性。
求所有正整数 ,使得存在一个集合 ,满足:
由 个都小于 的正整数组成;
对 的任意两个不同的非空子集 , 中元素之和不等于 中元素之和。
这是解答题,请在纸上写出完整过程。写完后对照解答给自己评分。
先检查小规模时是否有足够的候选正整数,以及被迫选入的数会不会形成相同子集和。
先回想这道题的想法,再试试当前题。
构造更大集合时可把原元素统一倍增,再增加一个不同奇偶性的标记元素,用模二信息分辨是否选了它。
当 时,不存在小于 的正整数;当 时,小于 的正整数只有 ,不能组成二元集合;当 时,唯一可能的三元集合是 ,但子集 与 的元素和相等。因此 均不合要求。
当 时,取
它的全部子集和为
彼此不同,且四个元素都小于 。
下面作归纳。设 已满足条件,定义
它有 个正整数,且由 得
若 的两个子集和相等,比较奇偶性可知两个子集要么都含 ,要么都不含 。同时删去可能出现的 ,再把等式除以 ,便得到 的两个子集和相等。由归纳假设,这两个子集相同,故原来的两个子集也相同。
因此从 起都存在所需集合,全部答案为
从四元基例生成的五元集合为 ,最大元素14严格小于16,新增元素也未与偶数重复。比较两个子集和时,奇偶性先决定1是否同时出现,再约去2回到基例;空集和为0、其他子集和为正,因此把空集纳入比较不会增加碰撞。
子集和唯一性可以用余数编码扩展,而不一定采用每个新元素大于旧总和的超递增方案。倍增加1的构造同时保留唯一恢复和严格元素上界;归纳步骤须核个数、互异与界三件事。
须排除三个小参数、找到非平凡的四元基例,并识别倍增旧元素后加入 1 的奇偶编码递推。
已记下,谢谢!