### 例题 4
???+note "BZOJ 4971「Lydsy1708 月赛」记忆中的背包"
- 经过一天辛苦的工作,小Q进入了梦乡。他脑海中浮现出了刚进大学时学01背包的情景,那时还是大一萌新的小Q解决了一道简单的01背包问题。这个问题是这样的:
+ 经过一天辛苦的工作,小 Q 进入了梦乡。他脑海中浮现出了刚进大学时学 01 背包的情景,那时还是大一萌新的小 Q 解决了一道简单的 01 背包问题。这个问题是这样的:
- 给定$n$个物品,每个物品的体积分别为$v_1,v_2,…,v_n$,请计算从中选择一些物品(也可以不选),使得总体积恰好为$w$的方案数。因为答案可能非常大,你只需要输出答案对$P$取模的结果。
+ 给定 $n$ 个物品,每个物品的体积分别为 $v_1,v_2,…,v_n$ ,请计算从中选择一些物品(也可以不选),使得总体积恰好为 $w$ 的方案数。因为答案可能非常大,你只需要输出答案对 $P$ 取模的结果。
- 因为长期熬夜刷题,他只看到样例输入中的$w$和$P$,以及样例输出是$k$,看不清到底有几个物品,也看不清每个物品的体积是多少。直到梦醒,小Q也没有看清$n$和$v$,请写一个程序,帮助小Q一起回忆曾经的样例输入。
+ 因为长期熬夜刷题,他只看到样例输入中的 $w$ 和 $P$ ,以及样例输出是 $k$ ,看不清到底有几个物品,也看不清每个物品的体积是多少。直到梦醒,小 Q 也没有看清 $n$ 和 $v$ ,请写一个程序,帮助小 Q 一起回忆曾经的样例输入。
??? note "解题思路"
这道题是自由度最高的构造题之一了。这就导致了没有头绪,难以入手的情况。
> 1. 当 $Y_{10}=0$ ,显然 $A_3 = B_3 = 0_3$ ,与假设矛盾。
> 2. 当 $Y_{10}>0$ :
>
-> - 将 $A_3$ ,$B_3$ 的数位按低位到高位编号,记 $a_i$ 为 $A_3$ 的第 $i$ 位,$b_i$ 为 $B$ 的第 $i$ 位。 在 $A_3,B_3$ 中,必存在 $i$ 使得 $a_i\neq b_i$ 。可以发现第 $i-1,i-2,\dots,0$ 位均与证明无关。因此,将 $A_3,B_3$ 按位右移 $i$ 位,得到 $A_3',B_3'$ ,原问题等价于证明 $A_3'=B_3'$ 。
+> - 将 $A_3$ , $B_3$ 的数位按低位到高位编号,记 $a_i$ 为 $A_3$ 的第 $i$ 位, $b_i$ 为 $B$ 的第 $i$ 位。在 $A_3,B_3$ 中,必存在 $i$ 使得 $a_i\neq b_i$ 。可以发现第 $i-1,i-2,\dots,0$ 位均与证明无关。因此,将 $A_3,B_3$ 按位右移 $i$ 位,得到 $A_3',B_3'$ ,原问题等价于证明 $A_3'=B_3'$ 。
>
-> - 对于 $A_3',B_3'$ 第 $0$ 位, $a_0 \neq b_0$ 。假设 $b_0 > a_0$ ( $a_0>b_0$ 时结果相同),易知 $b_0 - a_0 \in \{1,2\}$ 。 $A_3'$ 的位 $i=1,2,3,...$ 对于 $A_3'$ 的值的贡献为 $S_1 = a_1 \times 3^1 + a_2 \times 3^2+ \dots$ , $B_3'$ 的位 $i=1,2,3,...$ 对于 $B_3'$ 的值的贡献为 $S_2 = b_1 \times 3^1 + b_2 \times 3^2 + \dots$ 。由于 $A_3' = B_3'$ ,得 $S_1 - S_2 = b_0 - a_0$ 。 $S_1,S_2$ 有公因子 $3$ ,而 $b_0 - a_0$ 不能被 $3$ 整除,与假设矛盾,因此 $A_3'\neq B_3'$
+> - 对于 $A_3',B_3'$ 第 $0$ 位, $a_0 \neq b_0$ 。假设 $b_0 > a_0$ ( $a_0>b_0$ 时结果相同),易知 $b_0 - a_0 \in \{1,2\}$ 。 $A_3'$ 的位 $i=1,2,3,...$ 对于 $A_3'$ 的值的贡献为 $S_1 = a_1 \times 3^1 + a_2 \times 3^2+ \dots$ , $B_3'$ 的位 $i=1,2,3,...$ 对于 $B_3'$ 的值的贡献为 $S_2 = b_1 \times 3^1 + b_2 \times 3^2 + \dots$ 。由于 $A_3' = B_3'$ ,得 $S_1 - S_2 = b_0 - a_0$ 。 $S_1,S_2$ 有公因子 $3$ ,而 $b_0 - a_0$ 不能被 $3$ 整除,与假设矛盾,因此 $A_3'\neq B_3'$
> 3. 当 $Y_{10}<0$ ,证法与 $Y_{10}>0$ 相同。
故对于任意十进制 $Y_{10}$ ,均有唯一对应的平衡三进制 $X_3$ 。