csp-s模擬測試53

指望得分:61+?+37優化

實際得分:61+21+14ui

 

A. u

難度評估錯誤,放棄去想正解和一閃而過的二維前綴和,覺得很不可打,因而打了61部分分。spa

然而這是三道題裏最簡單的。遞歸

正解:差分+二維前綴和io

考慮如何二維差分,實際上就是硬湊,假設並驗證全部塊的差分前綴和是否正確。class

+1  -1搜索

  +1  -1hack

    +1  -1樣式

-1      +1co

獲得如上。

而後對對角線作差分,作前綴和轉化獲得二維差分,再作二維前綴和獲得原矩陣。

妙啊,秒啊

 

 

B. v

考場上不會狀壓dp轉移,正序倒序入度出度一直不能區分。

記憶化搜索,遞歸轉移,至關於倒序。這樣式子也很好寫。

100%也是這個思路,只是優化狀態數。

不記錄每一個位置存不存在,轉而記錄球的顏色。

用哈系表能夠作到。

注意到:

000101狀態不惟一,多是2B2W,1B2W......

爲了區分,加入輪數的信息。

在最高位打標記1,這樣每一輪標記的位置不一樣。

 

 

C. w

考試上秒了第一問,第二問猜了個結論。

一開始沒有看見後兩個樣例(好幾回了啊喂),碼完去盯了一個小時T2

9點多看到發現過不去第三個,把本身hack了,心態爆炸。

 

正解:

第一問是縮完邊後奇數點個數/2,以前的結論(然而我縮邊打炸了)

但用老路子求出第一問對第二問沒幫助。

設二元組f[u][0/1]={c1,c2}表示u向fa出不出邊,子樹中有c1個奇數點,c2條通過邊。

以後進行子樹合併dp,至關於作揹包。

而後對父親邊分類討論,更新f[u][0/1]

 

揹包正確性:

因爲沒有要求最長鏈最短之類,那麼哪兩條鏈合併是無所謂的,咱們只要關心有沒有合併,記錄有沒有多出來的線頭。

相關文章
相關標籤/搜索