T1.觸不可及
簡要題意
給定一個長度為 \(n\) 的序列 \(a\)。你每次可以刪除一段長度為 \(2\)的冪的 \(a\)的區間(刪除後兩邊合併)。你可以操作任意多次,但操作的區間長度必須互不相同。操作之後,你希望序列的最大子段和最大。輸出該最大子段和。
\(n<1e3,abs(a[i])>=1e6\)
題解
唐氏題,直接區間\(dp\),設\(dp[i][j]\)為\(1-i\)中,刪除的狀壓為\(j\)可以形成的最大答案(注意:不一定要從\(1\)開始或者到\(i\)結束),有:
用時\(30min\),期望得分\(100\),實際得分\(100\)。
T2.璀璨冒險人
簡要題意
有一個三個柱子的漢諾塔,\(n\)個圓盤,給定初始圓盤的位置,求都放在第三根柱子上的最小操作次數。
\(n \le 10^7, 1\le a_i \le 3\)。
題解
《具體數學》題,設\(dp[i][1/2/3]\)為把前\(i\)小的圓盤放到\(1/2/3\)號柱子上的操作次數。
轉移,不妨設第\(i+1\)個圓盤在第一個柱子上(其他情況同理),有:
也可以從大到小列舉,先找到第一個不在三號柱子上的圓盤,再遞迴處理。
用時\(1h20min\),做的時候唐氏了,期望得分\(100\),實際得分\(100\)。
T3.蜃樓
簡要題意
給定 \(n\),對每個 \(i=1,2,…,n\),你有\(a_i\)個面值為\(i\)的硬幣,問你能用這些硬幣湊出多少種金額。
\(n \le 100,0\le a_i \le 10^9\)。
題解
設\(\sum_{i=1}^{n}a_i\times i\)為\(s\),顯然每個金額能否湊成的\(01\)串關於\(s/2\)對稱。
並且觀察到這個東西有周期並且週期不長,題解說是\(2n^3\)的,那麼只需要計算\(2n^3\)內的答案即可。
計算使用多重揹包二進位制分組最佳化+bitset最佳化,複雜度\(O(n^4\log n/w)\)。
用時\(2h\),期望得分\(0\),實際得分\(0\)。
T4.我以渺小愛你
簡要題意
定義一個\(3-hypergraph\)是一個由三個點構成的集合,\(BC_k\)為\(k\)個兩兩不同的點\(v_1,v_2,......,v_k\)和兩兩不同的集合\(e_1,e_2,......,e_k\),滿足\(v_i \in e_i \cap e_{i\bmod k+1}\)
有\(n\)個點,構造儘可能多的\(3-hypergraph\),滿足沒有\(BC_2,BC_3,BC_4\)。
\(n<=1893\),構造得分計算方式較為複雜。
題解
條件等價於把每個集合\({x,y,z}\)拆成三條邊\((x,y),(y,z),(z,x)\)後圖中不包含四元環。
構造一張特殊的圖\(ER_q\),其中的點為\(\bmod q\)意義下的所有不同的三維直線,邊為兩條直線垂直則連邊。
易證\(ER_q\)中點數為\(q^2+q+1\)邊數為\(\frac{1}{2}q(q+1)^2\)且沒有四元環。
構造方案為\(ER_q\)中的所有三角形。
用時\(40min\),期望得分\(5\),實際得分\(5\)。