題解 P1999 覆蓋牆壁

2022-01-11 18:07:52 字數 874 閱讀 2335

數學題

令 \(a_n\) 為 \(2\times n\) 的牆壁放滿塊的方案數,考慮遞推。

顯然 \(a_0=1\),我們令對於 \(k<0\),\(a_k=0\) .

放直線型的塊非常好遞推:

此時答案即為 \(a_+a_\) .

接下來考慮放 l 型塊的:

顯然,兩個 l 型塊可以並成長方形:

但是也可以通過擺幾個橫著的塊再合併:

所以此時答案為 \(2(a_+a_+\cdots+a_0)\) .

把兩個加起來,得到

\[\large\begina_n&=a_+a_+2\left(\sum_^f_i\right)\\&=a_+a_+\sum_^a_i+\sum_^a_i\\&=\sum_^a_i+\sum_^a_i&\end

\]如果直接暴力轉移每次是 \(o(n)\) 的,總複雜度也就是 \(o(n^2)\) 的,顯然會 tle。

注意到這是靜態區間求和,所以考慮字首和。令 \(s_i=\sum\limits_^ia_j\),遞推式變為

\[\large a_n=s_+s_

\]這個 \(s\) 可以在轉移的時候遞推求出來,這樣就是 \(o(n)\) 的了,可以通過。

注意到這個式子裡面很多 \(a_i\) 被反覆加了,分別令 \(n=k\) 和 \(n=k+1\),得:

\[\large\begina_k&=\sum_^a_i+\sum_^a_i\\&=a_+a_+2a_+\sum_^a_i\end

\]\[\large\begina_&=\sum_^a_i+\sum_^a_i\\&=a_+a_+2\sum_^a_i\end

\]減一下,得到 \(a_k-a_=a_+a_\),即 \(a_k=2a_+a_\) .

用這個式子遞推即可。

洛谷P1999三國遊戲

題目 仔細想想,兩方都拿不到每個武將的配對中最大的 本來想的是如果有武將a,b,對應最大ma,mb,次大ca,cb,那麼自己選了a,電腦選了mb,接下來自己選b,若mb但仔細一想,這樣還不如第二步去選ca.所以自己只要設計一下,選到次大武將中最大的一組,就必勝了。如下 include include...

洛谷 P1999 高維正方體

首先這是個玄學的題目,很多人想到了楊輝三角,但是我太菜了於是沒有想到,用了另一種方法得出了正確的式子,先寫下式子好了。求n維下m維的數量 a ns cnm 2n mans c n m times 2 ans cn m 2 n m我這個蒟蒻推了一節數學課才推出的結論 先來點簡單的 我們生活在3維世界,...

洛谷P1999 高維正方體

這題挺有意思的 考慮起來有點麻煩 首先 n 維空間的點數 為 2 n 因為每往外延伸一條邊 就多出兩個點 然後考慮遞推 設 f 表示 i 維空間內 含有 j 維空間的個數 從 3 維空間開始推 f 8 因為 2 3 8 前面已經得出了 f 12 因為每個點可以延伸出 3 條邊 每條邊連著 2 個點 ...