24noip十連測day6

星河倒注發表於2024-10-13

T1.觸不可及

簡要題意

給定一個長度為 \(n\) 的序列 \(a\)。你每次可以刪除一段長度為 \(2\)的冪的 \(a\)的區間(刪除後兩邊合併)。你可以操作任意多次,但操作的區間長度必須互不相同。操作之後,你希望序列的最大子段和最大。輸出該最大子段和。

\(n<1e3,abs(a[i])>=1e6\)

題解

唐氏題,直接區間\(dp\),設\(dp[i][j]\)\(1-i\)中,刪除的狀壓為\(j\)可以形成的最大答案(注意:不一定要從\(1\)開始或者到\(i\)結束),有:

\[初始化:dp[i][0]=max(0,max(dp[i-1][0]+a[i],a[i])) \]

\[轉移:列舉2的次冪k,dp[i][j]=max(dp[i][j],dp[i-(1<<k)][j異或(1<<k)]) \]

用時\(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\)個圓盤在第一個柱子上(其他情況同理),有:

\[dp[i+1][1]=dp[i][1],dp[i+1][2]=dp[i][3]+2^{i-1},dp[i+1][3]=dp[i][2]+2^{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\)

相關文章