由於迴文串中的字符,除了最中間本身對應本身的一段,旁邊兩兩對應的必定要徹底相同,只要刪除其中任意一個字符使它們不相同就行。spa
時間複雜度 \(O\left(\left|s\right|\right)\)。排序
貪心,重複的選大的,沒重複直接選。字符串
時間複雜度 \(O\left(\left(n+m\right)\log n\right)\)。class
而後發現當一個子樹的根結點擁有一個以上的兒子時,子樹內的一些鏈與子樹外的那一條鏈的公共點只能在子樹的根結點。子樹內若只有一條鏈,則不可能傳出去;子樹內如有大於一條鏈,則至多傳一條出去。基礎
這樣的話子樹外也最多隻有一條鏈了,也就是說子樹外一定是一條鏈。方法
因此整棵樹最多隻有一個結點的度能夠大於 \(2\),也就是菊花圖,每條鏈均從根到葉子便可。時間
時間複雜度 \(O\left(n\right)\)。字符
套路題,很難直接記錄值,按位肯定。math
判斷寫個 DP,令 \(f_{i,j}\) 前 \(i\) 本書放了 \(j\) 個書架可否合法。枚舉
時間複雜度 \(O\left(n^2k\log a\right)\)。
超級好題,看得我一臉懵。
若是選取的操做區間均包含了某個位置,那麼這個位置必定是最大值。
因而咱們考慮選取若干個操做區間使它們的並集非空(反之去掉一些操做區間不會形成影響),此時它們 \(x\) 的和就能夠做爲最大值。
將操做區間按右端點從小到大排序,依次處理。用 \(f_i\) 表示當前值爲 \(i\),並集能取到的最右端點(貪心,越靠右越可能被新加入的區間覆蓋),相似可行性揹包轉移便可。
最後若 \(f_i>0\) 說明 \(i\) 值可做爲最大值。
時間複雜度 \(O\left(q\left(n+\log q\right)\right)\)。
隨機化好題。
有一個暴力的想法,暴力枚舉一對新郎新娘,而後依次配下去,能夠用調整法證實正確性。
而後加一個剪枝,若是當前最大值已經大於等於全局最小值,就跳出。
交一發,\(\texttt{TLE}\),被卡到了 \(O\left(n^2\right)\)。
我能想到的方法是對着剪枝卡,將每次搞到的最大值從小到大和從小到大分別排一次序(不清楚枚舉順序),這樣就很容易在其中一個點爆炸。
嘗試隨機枚舉第一對新郎新娘,仍是被卡掉了。
如今就比較玄學了,咱們猜測它可能把距離全搞成有序的,也就是說在配的時候咱們不能及時跳出(雖然全局最小值能很快縮減)。
在剛剛的基礎上隨機配,這樣它就卡不掉我了。
時間複雜度不是很清楚,先鴿着。
後面的題都鴿了。