題目大意是讓你在一棵樹上找到一條路徑使得(路徑邊權和*路徑最小值) 最大。
這道題有兩種方法。
1.點分治,考慮過重心的每條路徑是否可能成為答案,列舉從根出發的每一條路徑中的最小值等於總路徑的最小值,那麼選的另一條從根出發且不走同一棵子樹的路徑中的最小值必須大於等於這條路徑的最小值,所以我們可以先把所有路徑先找出來按最小值排個序,從大往小掃維護路徑長度的最大和次大就可以直接做了。
考試的時候想到了點分,但對點分的理解不夠徹底,正常套路應該是找出所有從重心出發的路徑然後合併兩條路徑,顯然這道題是可以合併的,考試的時候總覺的要列舉乙個起點找終點,最後還是寫了個暴力,多好的乙個ak機會。複雜度nlog^2.
2.這道題正常想法顯然應該是把邊權排序從大往小加,每加進一條邊就用過這條邊的最長路更新答案,問題就是怎麼找這個最長路。
這個東西顯然跟直徑有關,我們平時找直徑的時候有一種方法是dfs兩遍我相信大家應該都會,那麼說明我們從乙個點dfs到的最遠點一定是直徑的乙個端點,那不就好辦了,對於每個聯通塊我們維護它直徑的兩個端點,那麼我們合併直徑只可能是原本的直徑或a塊裡的乙個端點到b塊裡的乙個端點,分類討論一下就好了。複雜度nlogn。
YCH的模擬賽 T3
暴搜或者字典樹,但是因為輸出所有的方案而不是方案數,不管什麼做法都逃不過輸出,所以都差不多 sol1 記憶化搜尋 當列舉方案時,f i 表示已經把字串的前i個字母都拼好的情況下有多少方案 考慮從第i 1個字元開始到j是乙個給定的單詞 如果有這樣的j的話就可以轉移 然後開乙個vector把每乙個狀態下...
20180711模擬賽T3 聚變
檔名 fusion 題目型別 傳統題 時間限制 3秒 記憶體限制 256mb 編譯優化 無 知名科學家小a在2118年在計算機上實現了模擬聚變的過程。我們將她研究的過程簡化。核子共有26種,可以用a到z共26個字母表示。核子聚變的過程可以用乙個字串描述。按照順序從左到右的順序,假如有兩個相同核子相鄰...
熱身賽T3(獎學金評定)
zpy 學習非常努力,想要評獎學金,而獎學金評定的一大標準就是績點 gpa 高低。單個科目的 gpa 的計算公式如下 f x min 5.0,x 45 0.1 其中 x 表示課程成績,眾所周知當 x 60 時 f x 0 在評定獎學金時用的是平均學分績點,簡而言之就是以學分為權重的績點。假設你考了三...