problem 0
給出乙個長度為n的序列a[1..n],將其變成序列b[1..n]的代價為∑n
i=1|
a[i]
−b[i
]|,要使b[1..n]成為乙個不下降序列,問最小的代價 1≤
n≤104
solution
這道題和之前做過的一道題很像,我的做法是用splay維護dp的陣列,打了二十多分鐘,還挺順的。
problem 1
要求動態維護兩個01揹包問題,第乙個要求不同編號的物品視為不同物品,第二個要求同樣大小的物品視為相同的物品。
所有的資料均在10000以內
solution
由於是記數類問題,於是我們可以往生成函式那方面想。
首先對於第乙個問題:不同編號的物品視為不同物品
考慮生成函式,對於加入乙個大小為p的物品,顯然,我們將多項式乘上(1
+xp)
利用以下偽**:
for i = max --> p
f[i]<--f[i]+f[i-p]
對於刪除乙個大小為p的物品,就是說我們要除以(1
+xp)
考慮前者的**,我們如何能夠逆著做這樣的操作,對於乙個f[i],假設f[1..i-1]已經是除掉之後的結果,那麼只需要減去f[i-p]
偽**如下:
for i = p --> max
f[i]<--f[i]-f[i-p]
對於第二種問題:大小相同的物品視為同樣的物品
假設有n種物品,第i種物品大小為p[i],數量為cnt[i]
那麼我們的生成函式就是πn
i=1∑
cnti
j=0x
j×pi
觀察後面的式子,等比數列求和一下得到:πn
i=11
−x(c
nti+
1)×p
i1−x
pi於是我們插入乙個數大概是乘上乙個1−
x(cn
ti+1
)×pi
1−xc
nti×
pi刪除就直接反過來就好了
那麼這個要怎樣做,我們觀察式子,發現乘上與除以的都是這樣的形式:1−
xt而在第一種問題中我們的是乘以和除以1+
xt的形式
那麼我們只要將加減號反過來就好了
最後就可以用o(n)的時間來維護乙個修改
總的時間複雜度是o(
n2)
problem 2
平面直角座標系中,有n個點,乙個可行的建築是指,有乙個中心(整點,不一定是n個點之中的點),有若干個對角線分別平行於x軸和y軸且定點是n個點之中的點的四邊形以這個中心為對角線交點,並且四邊形各不相交,乙個建築的指數是指四邊形的個數。求最大的建築指數,最大建築指數的中心點個數,最大建築的個數。
solution
首先考慮第乙個要求的答案:最大的建築指數。
先離散化,然後我們可以用掃瞄線加線段樹來做。
按x軸掃瞄,然後對於該x上每兩個相鄰點之間,我們可以直接知道上下的點個數的影響,問題就是左右的點個數的影響,這個用線段樹維護,由於只有n個點,那麼每次掃到乙個點時就將它加到左邊,然後更改線段樹上的值,那麼求第乙個答案,就只需要在相鄰兩個點之間查詢乙個最大值就好了,對於乙個原來的點為中心的情況,我們可以直接計算。
然後同時處理第二個和第三個答案:中心個數和建築個數
類似對第乙個答案的處理方法,我們同樣使用掃瞄線和線段樹。
與上面不同的是,我們線段樹維護了y軸乙個區間內左右較小值是否大於等於ans1,如果是那麼還有乙個維護用於求第三個答案的組合數的和。那麼對於兩個相鄰點之間,同樣可以知道上下的點個數的影響,於是我們就可以直接算,對於點為中心,類似。
思路挺顯然的,但是打的時候要注意常數,好多人因為常數問題過不去 ,大概就是掃瞄線不要掃太多次了,然後其實第二次的掃瞄中是可以用樹狀陣列的,還有線段樹的要注意一下。
好了這裡才開始扯總結,晚上這麼晚打總結也是沒誰了。
今天主要出現的問題是前面浪費了好多時間,一開始做第一題時看著很眼熟,大概推了一下以為是直接貪心就過去了,然後第二題看到70分部分分就直接認定要先敲完70分,第三題看完之後很快就想到了正解,感覺不是很麻煩,然後開始敲第二題,由於一開始用了multiset,然後沒有注意到erase會把所有為這個值的元素都刪除掉,然後錯了一會沒找出來。
最後開始打第一題時只剩下乙個半鐘了,然後發現自己想錯了,最後還是想到了splay的做法,很快打完,但是大資料過不了,打了對拍之後,發現有乙個下標寫錯了。
只剩下很少時間,匆匆打完最後一題三十分就收尾了。
接下來的訓練裡還是要抓緊一下時間,不要浪費太多時間了。
2017 11 3離線賽總結
有一段時間沒有離線賽了,感覺這次考得還過得去 失分小結 估分 240 實際分數 230 萬萬沒想到自己第二題的n 3可以卡過去,正解為lcp 最長公共字首 第三題就是抽直徑,然後就分類討論 注意直徑的性質 距離一點最遠的點一定是直徑兩端點中的一點 設兩個機房分別在a,b,他們在直徑上對應的點為u,v...
2017 1 13 貝葉斯分類器,決策樹 總結
python 正則式部分參考 樸素貝葉斯分類利用貝葉斯概率以及貝葉斯準則提供了一種利用已知值來估計未知概率的有效方法,比硬規則 k近鄰和決策樹 下的分類更有效。決策樹利用資訊理論中的熵的原理自動將已知分類訓練集的特徵向量找到資訊增益最大的分類,具體是將訓練集中的所有特徵挨個測試,用遞迴,每次找到最好...
暑假訓練總結 SSL暑假訓練總結
第一周過的還算好吧,覺得飯堂伙食也挺好的,同學也挺好。學習的東西感覺比小學難好多,有種覺得以前學的東西太簡單了的感覺,但多虧了小學的時候基礎打得還算紮實,學得還行,但總是感覺自己就是個菜雞,就是乙個蒟蒻,哎,室友真的太強了。第一周總結 第二週自我感覺挺不錯的,總算追上了部分室友,成績也開始 這一切都...