D
對於一個序列,相同的對數有\(2{2^{N-1}\choose 2}\),不同的對數有\((2^{N-1})^2\)
假設選了\(len\)個序列,那么應該滿足:
\[\begin{aligned} len\cdot 2{2^{N-1}\choose 2}=n\cdot {2^N\choose 2}\\ len\cdot (2^{N-1})^2=m\cdot {2^N\choose 2} \end{aligned}\]
通過移項可得:\(n:m=2^{N-1}-1:2^{N-1}\)
將\(n=2^{N-1}-1\)或\(m=2^{N-1}\)帶入上式,會得到\(len=2^{N}-1\),故這是\(len\)的下界(同時也說明\(2^{N}-1|len\))
我們通過構造一種方式,證明答案可以為\(2^{N}-1\)
第\(i\)個序列(\(i=1\sim 2^N-1\))
在\(j\)位置上(\(j=0\sim 2^N-1\)),若\(\text{popcount} (i\And j)\)為偶數則填'A',為奇數則填'B'
對於任意\(N\)長度的二進制,\(i\)僅缺失了\(0\),故容易證明這個構造滿足\(n=2^{N-1}-1\),\(m=2^{N-1}\)
E
snuke在當前輪直接選取,那么狀態會非常不好記錄
我們保留snuke在之前輪,選擇放棄暫時不選的次數,然后等螞蟻走到這來了再選
雖然這個跟原游戲不同,但顯然其不會優於最優解,也包含最優解
令\(f_{l,r,k}\)為\((l,r)\)全部被選了,snuke還可以選\(k\)次的最優解
兩種轉移方式(填表法):
- 滿足\(k>0\),那么snuke可以選擇\(l\)或\(r\),則用\(f_{l-1,r,k-1}+a_{l}\)或\(f_{l,r+1,k-1}+a_{r}\)轉移
- 目前snuke不選擇,則對手選擇
那么用\(f_{l-1,r,k+1}\)或\(f_{l,r+1,k+1}\)轉移(按照題意,這里的轉移是固定的,取\(a_l,a_r\)中較大的一個)
F
感覺講起來比較麻煩,就不寫題解了...
code