1. 程式人生 > 其它 >4.11考場隨筆

4.11考場隨筆

\(dp\)場?

考場隨筆

\(T1\)

\(O(n^3)\)\(dp\)很好給出,直接列舉兩個序列上一個位置是什麼就好了

感覺貢獻不能這麼直接算,過於麻煩

考慮我們我們當前點做貢獻的話,能不能類似刷錶轉移

那麼我們\(dp[i]\)表示,貌似不行,這個前面保證,也不行

考慮最後的貢獻,一個點最多做兩次貢獻

然後最後總共做貢獻次數是\(n\)

一個點給自己做貢獻的條件是,比前面的大

一個點給後面點做貢獻的條件是,比後面大

排序?

然後一個個放進去,較為顯然,一個點只會對前面的,排名在他前後最近的做貢獻,但是顯然\(dp\)轉移不能轉移這個

或許不是\(dp,\)我們對於這個點必須要知道上一個是誰,才能統計,那麼瓶頸還是在列舉上一個狀態,但是排序之後

等等,我一開始的\(n^3\)貌似有一維度是確定的,那麼其實是\(n^2\)那麼直接轉成\(dp[i]\)表示目前第一組最後一個是\(i\),那麼另一個必然是\(i-1,\)那麼就可以\(n^2\)轉移了,大膽猜測有決策單調性

貌似讀錯題了

最後必然是單調遞增的,那麼寄了

還是排序,比較顯然,一個值肯定是前面的最大值

另一個值不確定,那麼列舉,那麼可以列舉第一組的狀態

我們強制讓第一組一直選最大的肯定不劣?然後我們列舉第二維目前上一個的值就好了

那麼每個點只有兩個決策,放到第一個或者不放到第一個就好了

直接用最大值更新顯然不優,那麼還是列舉上一個最大值在哪裡選的

可以得到\(40pts,\)棄掉,不會滿分

\(T2\)

時間不夠寫不出來了

但是大體思路應該是對的

\(dp[i][j]\)表示目前已經確定前\(i\)個位置,我們前\(j\)個位置相等的方案數,具體轉移沒來的及想

貌似不是,應該是個多維度\(dp\)的樣子,不是很清楚.............

寄,還有十分鐘,擺爛。。

\(T3\)

首先\(24pts\)是可以\(n^3\)

\(dp[i][j][k]\)表示目前處理到兩人前\(i\)個,上一個一個人選了\(j\),另一個人選了\(k\)的最小代價

然後列舉這一個選哪個\(?\)貌似並不是\(n^3,\)\(n^4\)

首先我們要滿足上面的每一個必須對下面的每一個對應時候上面必須小於下面

套路?

這個限制確實可以壓進狀態裡面吧,那麼我們現在有兩個維度

但是又想想,貪心的想要最小,還是猜結論?

只能保留一個維度

那麼考慮列舉第二維選或不選,然後列舉上一個維度選到哪裡壓進狀態

\(O(n^2),52pts?\)

貌似很好寫的樣子...

不對,我還得記錄選了幾個\(dp[i][k]\)複雜度\(O(n^3)\)跑不滿,\(24 pts\)

感覺想優化一個\(n\)需要\(wqs\),感覺很麻煩,貌似不是很麻煩,可以優化到\(n^2logn\)

那麼正解應該就是加一個決策單調性了\(...\)

寫不出來...

性質\(A\)的話,應該是掃一下,觀察到底是直接選當前\(B\)\(A\)比較優秀,還是往後選比較優秀,大概只需要把最小的\(k\)個挑出來就好了,hhh

\(32pts,get\)

下了場,我是\(sbsbsbsbbsb,T3\)原題沒看出來,我講的模擬費用流自己不會了,我還寫了這道題。。。。。\(wosbsbbsbbsbsb\)