同一骨架 2008 年湖北预赛 第 7 题 · P010649
次数或选中对象个数作为权重时,可以让生成多项式求导来产生这一个因子。先说明每一项如何编码,再按目标处理常数项与所需取值点,避免完整展开。
前题先平移展开基底,再补回导数遗漏的常数项;后题先用逐元素选择的乘积编码带符号子集,求导自然给子集大小,再利用取值点的根重数。
设集合 。对 的子集 ,定义
其中 。则
分数写 a/b,根号写 √ 或 sqrt,π 写 pi 也可以。
权值中的符号由所选元素之和的奇偶性决定,而因子 是 子集大小;这正好可以由一个乘积型生成函数的导数同时编码。
先回想这道题的想法,再试试当前题。
定义多项式
展开乘积时,对每个 选择 或 ,便分别对应于 不属于或属于 某个子集 。因此
两边求导并令 ,得到
其中空集项因 也等于 ,与题目定义一致。
中有 个奇数和 个偶数,故
于是
所以
生成函数中每个子集恰由一次选项组合产生,没有重复或遗漏;求导后系数恰为子集大小。 此外, 是 的 重根,重数大于 ,因此 ,与直接求导 相符。
若对子集求和的权值同时含有“所选元素的乘积型符号”和“子集大小”,可先用 编码所有子集,再用对 求导产生大小因子。奇偶数目相同又会使 乘积成对化为 ,从根的重数即可快速判断导数值。
需把子集大小这一权重转成生成多项式的导数,再利用奇偶配对的零因子,难点是加权编码。
核心工具:各步独立选择的乘法原理、多项式系数的赋值与加权求和
同一骨架 2008 年湖北预赛 第 7 题 · P010649
次数或选中对象个数作为权重时,可以让生成多项式求导来产生这一个因子。先说明每一项如何编码,再按目标处理常数项与所需取值点,避免完整展开。
前题先平移展开基底,再补回导数遗漏的常数项;后题先用逐元素选择的乘积编码带符号子集,求导自然给子集大小,再利用取值点的根重数。
已记下,谢谢!