題目內容
$a_0=0$,$\forall 1\le k\le n,\ |a_k|=|a_{k-1}+m|\ (m>0)$。求$|\sum\limits_{k=1}^n a_k|$的最小值。
解題思路
很容易發現$(a_1,\cdots,a_k)$的符合條件的組合一共有$2^n$組,顯然逐個遍歷考慮是很不現實的。
然後想到整個題目可以映射到一個深度為$n$的完美二叉圖上,$(a_1,\cdots,a_k)$就對應根節點($a_0$)到某一個葉節點($a_n$的某一種可能情況)的路徑。根據二叉樹的性質,這時可以較容易想到對所有可能情況進行二進位制編碼。
例如在下面的解法中,我們將某個代表$a_{k-1}$的可能取值的節點的左子節點考慮為$a_{k-1}+m$,右子節點考慮為$-(a_{k-1}+m)$。當某一路徑經過該節點並前往左子節點時,我們將之編碼為$0$;反之則編碼為$1$。
在這之後,我們可以先試著檢查一些$n$較小的情況。例如$n=5$時,可以發現$32$組$(a_1,\cdots,a_k)$對應的$\sum\limits_{k=1}^n a_k$的可能取值只有$\{-3, -1, 5, 15\}$,一共$4$種。這時就可以順理成章地做出推測:很多不同$(a_1,\cdots,a_k)$組合得到的$\sum\limits_{k=1}^n a_k$都是重複的。
下面的代碼用以列出$n=1\sim20$的時候分別對應的取值集合(為方便,這裡$m=1$)。
1 | from math import inf |
運行結果如下:
1 | 1 [-1, 1] |
從這個結果出發,很容易發現規律:只有$\lfloor\frac{n+1}{2}\rfloor$種可能取值,且所有取值排序後為二階等差數列。
這時就應該考慮如何給$\sum\limits_{k=1}^n a_k$相等的不同$(a_1,\cdots,a_k)$組合賦予(或者說尋找)關係,即構造等價關係和等價類。
這裡還是可以回到$n$較小的情況(例如$n=5$)去尋找關係。最後發現要找的關係和異或運算相關,至此本題即迎刃而解。
完整步驟
先考慮引理$\mathrm{I}$:
所有$n$位二進制數$(b_1b_2\cdots b_n)_2\in 2^n$(其中$\forall i\in[n],\ b_i\in\{0,1\}$)均可表示為以下形式:
其中,$\oplus$是異或符號,$m\in\mathbb{N}$且$0\le m\le \lfloor\frac{n+1}{2}\rfloor$,$c_1,c_2,\cdots ,c_m$兩兩不相等且均屬於集合$A_n$($A_n$的定義見下)。
下面給出證明:
我們定義累異或符號以便表示:
特別地,當$m=0$時,$\mathop\oplus\limits_{i=1}^{0}c_i=(00\cdots 0)_2$。
設$\beta_{j}=(b_1b_2\cdots b_n)_2,1\le j\le n-1,b_j=b_{j+1}=1,\sum\limits_{i=1}^n b_i=2$,
特別地,$\beta_{0}=(100\cdots 0)_2,\ \beta_{n}=(00\cdots 1)_2$。
則$A_n$可表示為$A_n=\{\beta_{0},\beta_{1},\cdots,\beta_{n-1},\beta_{n}\}$。
定義$\gamma_{j,k}=(b_1b_2\cdots b_n)_2,1\le j< k\le n,b_j=b_k=1,\sum_{i=1}^n b_i=2$,容易發現
$\gamma_{j,k}=\mathop\oplus\limits_{i=j}^{k-1}\beta_{i}$,即$\gamma_{j,k}$可以表示為$k-j$個$A_n$元素的異或。
對於任意一個$n$位二進制數$(b_1b_2\cdots b_n)_2\in 2^n$,設$b_1,\cdots,b_n$中有$l$個$1$和$n-l$個$0$,所有滿足$b_i=1$的$b_i$的下標分別為$\sigma(1),\cdots,\sigma(l)$。($\forall 1\le j\le l,\ \sigma(j)\in[n],\ \sigma(1)<\cdots<\sigma(l)$)
(1). 若$l$為偶數,我們有兩種拼湊異或的方法:
a. 不使用$\beta_{0},\beta_{n}$:
設這種方法一共會使用$S_1$個$A_n$的不同元素,則
b. 同時使用$\beta_{0},\beta_{n}$:
設這種方法一共會使用$S_2$個$A_n$的不同元素,則
$\min\{S_1,S_2\}\le\frac{S_1+S_2}{2}\le\frac{n+1}{2}$,顯然$\min\{S_1,S_2\}\in\mathbb N$,因此$\min\{S_1,S_2\}\le\lfloor\frac{n+1}{2}\rfloor$。
(2). 若$l$為奇數,我們亦有兩種拼湊異或的方法:
a. 使用$\beta_{0}$但不使用$\beta_{n}$:
設這種方法一共會使用$S_3$個$A_n$的不同元素,則
b. 不使用$\beta_{0}$但使用$\beta_{n}$:
設這種方法一共會使用$S_4$個$A_n$的不同元素,則
同理可得$\min\{S_3,S_4\}\le\lfloor\frac{n+1}{2}\rfloor$。
綜上,對於任意的$n$位二進制數$(b_1b_2\cdots b_n)_2$,均能將之表示為不多於$\lfloor\frac{n+1}{2}\rfloor$個$A_n$的不同元素的異或。
引理$\mathrm{I} $得證。
回到題目,易發現$\sum\limits_{k=1}^n a_k\in\{vm|v\in\mathbb{Z}\}$,且 $\max\left\{\sum\limits_{k=1}^n a_k\right\}=\sum\limits_{k=1}^nm=m\cdot\frac{n(n+1)}{2}$。
定義映射$f:2^n\to\{vm|v\in\mathbb{Z}\}^n$,由$n$位二進制數$(b_1b_2\cdots b_n)_2$映射得到的像$(a_1,\cdots,a_n)$滿足
顯然$f$是單射,且$f$的值域是所有滿足條件的$(a_1,\cdots,a_n)$的集合。
另外,為了方便,我們設
考慮引理$\mathrm{II} $:
對於任意的$n$位二進制數$(b_1b_2\cdots b_n)_2$,假設其最少可以表示為$t((b_1b_2\cdots b_n)_2)$個$A_n$的不同元素的異或。
(由引理I可知$0\le t((b_1b_2\cdots b_n)_2)\le \lfloor\frac{n+1}{2}\rfloor$)
若在上述表達式中沒有出現$\beta_{j}$,令
則對於任意滿足條件的$j$,有
下面給出證明:
(1). 當$t((b_1b_2\cdots b_n)_2)=0$時,$(b_1b_2\cdots b_n)_2$僅有一個符合條件的取值$(00\cdots0)_2$,滿足條件;
(2). 假設$t((b_1b_2\cdots b_n)_2)=t_0\ (0\le t_0<\lfloor\frac{n+1}{2}\rfloor)$時結論成立。
當$t((b_1b_2\cdots b_n)_2)=t_0+1$時,假設其異或表達式為$\mathop\oplus\limits_{i=1}^{t_0+1}\beta_{\sigma(i)}$。
考慮$(b_1’b_2’\cdots b_n’)_2=\mathop\oplus\limits_{i=1}^{t_0}\beta_{\sigma(i)}$,顯然有$t((b_1’b_2’\cdots b_n’)_2)=t_0$,
且$(b_1b_2\cdots b_n)_2=(b_1’b_2’\cdots b_n’)_2\oplus\beta_{\sigma(t_0+1)}$。
$\forall j\in\{0,1,\cdots,n\}\backslash\{\sigma(i)|1\le i \le t_0+1\}$:
a. 若$j<\sigma(t_0+1)$,考慮$d_{j+1}’,\cdots,d_{\sigma(t_0+1)}’$中$-1$的個數。
顯然,對於$A_n$中的元素,只有$\beta_{j},\beta_{j+1},\cdots,\beta_{\sigma(t_0+1)-1},\beta_{\sigma(t_0+1)}$能改變這個值。
而我們已知$(b_1’b_2’\cdots b_n’)_2$的異或表達式中不包含$\beta_{j},\beta_{\sigma(t_0+1)}$,因此$d_{j+1}’,\cdots,d_{\sigma(t_0+1)}’$中$-1$的個數隻受$\beta_{j+1},\cdots,\beta_{\sigma(t_0+1)-1}$影響。
這之中的每個$\beta$都可使$d_{j+1}’,\cdots,d_{\sigma(t_0+1)}’$中的兩個數取反(即$0\mapsto1,1\mapsto 0$),其中$-1$的個數的所有變化可能為$+2,-2,0$。
又知初始情況$(00\cdots 0)_2$中,下標在$j+1\sim\sigma(t_0+1)$範圍內的數有$0$個為$1$。
由此可知$d_{j+1}’,\cdots,d_{\sigma(t_0+1)}’$中有偶數個$1$,即有
又因為$(b_1b_2\cdots b_n)_2=(b_1’b_2’\cdots b_n’)_2\oplus\beta_{\sigma(t_0+1)}$,而$\beta_{\sigma(t_0+1)}$只能使$d_{j+1}’,\cdots,d_{\sigma(t_0+1)}’$的其中一個數取反,其中$-1$的個數的所有變化可能為$+1,-1$。
因此$d_{j+1},\cdots,d_{\sigma(t_0+1)}$中有奇數個$-1$,即有
結合$d_i$和$d_i’$的關係
可知
其中左部分:
右部分:
因此有
b. 若$j>\sigma(t_0+1)$,同理可得
綜上,且因為$t=t_0$時結論成立,我們有
這說明$t=t_0+1$時結論亦成立。由數學歸納法,引理$\mathrm{II} $得證。
對於滿足$t((b_1b_2\cdots b_n)_2)\ge1$的$(b_1b_2\cdots b_n)_2$,
假設其異或表達式為$\mathop\oplus\limits_{i=1}^{t((b_1b_2\cdots b_n)_2)}\beta_{\sigma(i)}$,設其中最後一項為$\beta_{j}$。
考慮
顯然有$t((b_1’b_2’\cdots b_n’)_2)=t((b_1b_2\cdots b_n)_2)-1$,且$(b_1b_2\cdots b_n)_2=(b_1’b_2’\cdots b_n’)_2\oplus\beta_{j}$。
由此可知$\forall 1\le k \le j-1,\ b_k=b_k’,\ a_k=a_k’$;$a_j=-a_j’$。
另,$a_j’=d_j’(d_{j-1}’\cdots (d_1’(a_0’+m)\cdots)+m)=m\sum\limits_{i=1}^j\prod\limits_{i’=i}^jd_{i’}’$(觀察$m$的係數易得之)
若$b_{j+1}’=0$,則$b_{j+1}=1$,
若$b_{j+1}’=1$,則$b_{j+1}=0$,
綜上,$a_{j+1}-a_{j+1}’=-2md_{j+1}’$。
$\forall j+2\le k\le n,\ b_k=b_k’$,因此
由此推得
設$\Sigma((b_1b_2\cdots b_n)_2)=\sum\limits_{k=1}^n a_k$,結合引理II可知,
累加可得:
$\begin{align}
&\Sigma((b_1b_2\cdots b_n)_2)\\
=&\Sigma((00\cdots 0)_2)+\sum\limits_{t=1}^{t((b_1b_2\cdots b_n)_2)}(-2m(n+2-2t))\\
=&m\cdot\frac{n(n+1)}{2}+4m\sum\limits_{t=1}^{t((b_1b_2\cdots b_n)_2)}(t-\frac{n}{2}-1)\\
=&m\cdot\frac{n(n+1)}{2}+4m(\frac{t((b_1b_2\cdots b_n)_2)(t((b_1b_2\cdots b_n)_2)+1)}{2}-t((b_1b_2\cdots b_n)_2)(\frac{n}{2}+1))\\
=&m\cdot\frac{n(n+1)}{2}-2mt((b_1b_2\cdots b_n)_2)(n+1-t((b_1b_2\cdots b_n)_2))
\end{align}$
我們知道$0\le t((b_1b_2\cdots b_n)_2)\le \lfloor\frac{n+1}{2}\rfloor$,且下面的構造說明$t((b_1b_2\cdots b_n)_2)$可以取遍$0,1,\cdots,\lfloor\frac{n+1}{2}\rfloor$所有$\lfloor\frac{n+1}{2}\rfloor+1$種可能的值:
顯然$(00\cdots 0)_2$是滿足$t((b_1b_2\cdots b_n)_2)=0$的構造。對於$t((b_1b_2\cdots b_n)_2)>0$的情況,
令$b_i=1(1\le i\le \lfloor\frac{n+1}{2}\rfloor),\ \sum\limits_{j=1}^{n}b_j=1$,可知
$(b_1b_2\cdots b_n)_2=\mathop\oplus\limits_{j=0}^{i-1}\beta_{j}$,是滿足$t((b_1b_2\cdots b_n)_2)=i$的構造。
至此,我們證明了$\Sigma((b_1b_2\cdots b_n)_2)$有且僅有$\lfloor\frac{n+1}{2}\rfloor+1$種可能的取值,
所有可能的取值的集合為
最後,我們將尋找$T_n$中絕對值最小的元素。
設$\Sigma_t=m\cdot\frac{n(n+1)}{2}-2mt(n+1-t)$,固定$m,n$的值。
發現關於$t$的二次函數$2mt(n+1-t)$中線為$t=\frac{n+1}{2}\ge \lfloor\frac{n+1}{2}\rfloor$,
因此數列$\{\Sigma_t\}_{(0\le t\le \lfloor\frac{n+1}{2}\rfloor)}$嚴格遞減,且最大值為
最小值為
當$n$為偶數時,
當$n$為奇數時,
綜上,對於任意的$n$,
由此可知存在$0\le i_0\le \lfloor\frac{n+1}{2}\rfloor-1$,使得$\Sigma_{i_0}\ge 0\ge\Sigma_{i_0+1}$,顯然
因此
具體地,如果希望求得$i_0$的值,考慮關於$t$的二次函數
由$\Delta=4m^2((n+1)^2-n(n+1))=4m^2(n+1)>0$可知,該函數與$y$軸有兩個交點$(x_1,0),(x_2,0)\ (x_1<x_2)$。
由於$t$的範圍限制,我們只需要關注左邊的交點$(x_1,0)$,其中
由$\lfloor\frac{n+1-\sqrt{n+1}}{2}\rfloor\le x_1\le\lfloor\frac{n+1-\sqrt{n+1}}{2}\rfloor+1$可知,
因此$\lfloor\frac{n+1-\sqrt{n+1}}{2}\rfloor$是$i_0$的一個可能值,進而有
絕對值取最小值時的具體構造參見前面的部分。