【BZOJ】4446: [Scoi2015]小凸玩密室 倍增+樹形DP
題解
倍增+DP好題。這道題的DP太神了!
感覺上這道題怎麼DP向後的狀態,或向前的狀態都非常不好做,從Chen’s Blog學到了DP的新姿勢
非常關鍵的一點:這是一顆完全二叉樹。很多DP的優化方法都由此而來。
觀察點燈的過程:
(1) 點亮一個點 (2) 選擇其一個子節點遞迴下去,遞迴完畢則該子節點子樹全部點亮(最後一個被點亮的必然是某個該子樹內的葉子節點) (3) 再遞迴另一子樹 (4) 該子樹已全部點亮,回溯其父節點 (5) 繼續操作,直到整棵樹都被點亮
由此過程受到啟發:
- 無法有效列舉每一點是由其兄弟節點子樹內哪個葉子轉移而來
- 但可以列舉葉子轉移到其某一級祖先的兄弟節點/或某一級祖先(注意這是一顆完全二叉樹,層數是嚴格
logn 的)的最少花費。 - 轉移到某一級祖先的兄弟節點的情況表示過程(3),轉移到某一級祖先的情況表示過程(4)
現在可以列出轉移陣列
f[i][j][0] 表示以節點i 為根的子樹全部被點亮之後再去點亮fa[i][j] 的最小花費f[i][j][1] 表示以節點i 為根的子樹全部被點亮之後再去點亮li[i][j] 的最小花費。
i 是葉子節點。f[i][j][0]=dist(i,fa[j][j])×afa[i][j] ,f[i][j][1]=dist(i,li[i][j])×ali[i][j] i 只有左兒子,只能走左兒子。f[i][j][0]=f[lci][j+1][0]+dist(i,lci)×alci f[i][j][1]=f[lci][j+1][1]+dist(i,lci)×alc 相關推薦
【BZOJ】4446: [Scoi2015]小凸玩密室 倍增+樹形DP
題解 倍增+DP好題。這道題的DP太神了! 感覺上這道題怎麼DP向後的狀態,或向前的狀態都非常不好做,從Chen’s Blog學到了DP的新姿勢 非常關鍵的一點:這是一顆完全二叉樹。很多DP的優化方法都由此而來。 觀察點燈的過程: (1)
4446. [SCOI2015]小凸玩密室【樹形DP】
Description 小凸和小方相約玩密室逃脫,這個密室是一棵有n個節點的完全二叉樹,每個節點有一個燈泡。點亮所有燈泡即可逃出密室。 每個燈泡有個權值Ai,每條邊也有個權值bi。點亮第1個燈泡不需要花費,之後每點亮1個新的燈泡V的花費,等於上一個被點亮的燈泡U到這
【BZOJ】4445: [Scoi2015]小凸想跑步 半平面交/線性規劃
題解 n≤105n≤105,可以列舉除0−10−1邊之外凸包上的所有邊與0101邊列一個方程,解出式子ax+by+c=0ax+by+c=0中a,b,ca,b,c的值,使得ax+by+c>0ax+by+c>0或ax+by+c<0
BZOJ4446 [Scoi2015]小凸玩密室 【樹形Dp】
blog efi void 轉化 似的 聯通 while line down 題目 小凸和小方相約玩密室逃脫,這個密室是一棵有n個節點的完全二叉樹,每個節點有一個燈泡。點亮所有燈 泡即可逃出密室。每個燈泡有個權值Ai,每條邊也有個權值bi。點亮第1個燈泡不需要花費,之後每點
bzoj4446 [Scoi2015]小凸玩密室
its using 結點 cnblogs 現在 ... gis 多少 res Description 小凸和小方相約玩密室逃脫,這個密室是一棵有n個節點的完全二叉樹,每個節點有一個燈泡。點亮所有燈泡即可逃出密室。每個燈泡有個權值Ai,每條邊也有個權值bi。點亮第1個燈
洛谷 P4253 [SCOI2015]小凸玩密室
題目描述 小凸和小方相約玩密室逃脫,這個密室是一棵有 nnn 個節點的完全二叉樹,每個節點有一個燈泡。點亮所有燈泡即可逃出密室。每個燈泡有個權值 aia_iai,每條邊也有個權值 bib_ibi。點亮第一個燈泡不需要花費,之後每點亮一個新的燈泡 vvv 的花
【LOJ】 #2009. 「SCOI2015」小凸玩密室
class getchar() loj 都是 ifd mes pan n) ans 題解 神仙dp啊QAQ 我們發現我們需要枚舉一個起點,遍歷完它所有的兒子然後向上爬 設\(f[i][j]\)表示第i個點的子樹全部處理完之後到達i深度為j的祖先的兄弟處 我們只需要對葉子節點
【洛谷4251】 [SCOI2015]小凸玩矩陣(二分答案,二分圖匹配)
const ons node ring clear pri lib get queue 題面 傳送門 Solution 看到什麽最大值最小肯定二分啊。 check直接跑一個二分圖匹配就好了。 orz ztl!!! 代碼實現 /* mail: mleautomaton@f
BZOJ 4443 [Scoi2015]小凸玩矩陣(二分答案+二分圖匹配)
size 一行 第k大的數 tar span sizeof 多少 get return 【題目鏈接】 http://www.lydsy.com/JudgeOnline/problem.php?id=4443 【題目大意】 從矩陣中選出N個數,其中任意兩個
—Libre#2009. 「SCOI2015」小凸玩密室
有一個 orange prim rip math 點燈 time pan main #2009. 「SCOI2015」小凸玩密室 內存限制:256 MiB時間限制:1000 ms標準輸入輸出 題目類型:傳統評測方式:文本比較 上傳者: 匿名
[Scoi2015]小凸玩矩陣
inf -m iostream cstring pre false void true end #include<algorithm> #include<iostream> #include<cstdlib> #include<cs
bzoj4443[Scoi2015]小凸玩矩陣
第k大 com style bit mem pan 離散 模型 減少 4443: [Scoi2015]小凸玩矩陣 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1460 Solved: 685[Submit][Sta
【BZOJ】2760: [JLOI2011]小A的煩惱【字串模擬】
2760: [JLOI2011]小A的煩惱 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 406 Solved: 258 [ Submit][ Status][
#2009. 「SCOI2015」小凸玩密室
神仙題啊。完全想不出 首先看方案。可以從任意一個點開始,在這個點要先走完子樹,然後走到父親,再走兄弟,再走父親的父親,父親的兄弟。。一直走到1,1的另外一個子樹,結束。 完全不會鴨.jpg 設f[i][j]是走完i的子樹,再走到i的第j個祖先的最小花費。那麼上面的方案可以表示成:f[x][1](走完x的
4443: [Scoi2015]小凸玩矩陣
4443: [Scoi2015]小凸玩矩陣Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1954 Solved: 937 [Submit][Status][Discuss] Description 小凸和小方是好朋友,小方給小凸一個N*M(N<=M)
Luogu 4251 [SCOI2015]小凸玩矩陣
BZOJ 4443 二分答案 + 二分圖匹配 外層二分一個最小值,然後檢驗是否能選出$n - k + 1$個不小於當前二分出的$mid$的數。對於每一個$a_{i, j} \geq mid$,從$i$向$j + n$連一條邊,然後跑二分圖最大匹配即可。 菜的很,二分圖匹配都寫不對…… 注意陣列要開到雙
【BZOJ】4349: 最小樹形圖
題解 我們只考慮給每個點買一個,之後每個點就可以用最低價格買了 根據最小樹形圖的演算法,就是不斷給每個點入度的邊找一條最小的 如果構成了樹形圖就退出,否則把形成了環的點縮成一個點,加上環的權值,然後把指向環中點的弧變成弧長減去環中指向該點的弧的長度 重標號讓程式碼顯得好難看啊QAQ 程式碼 #in
【BZOJ】2878: [Noi2012]迷失遊樂園-基環樹期望DP
傳送門:bzoj2878 題解 討論比較繁瑣: 先求出每個點向下走的期望 g i
【bzoj5123】[Lydsy12月賽]線段樹的匹配 樹形dp+記憶化搜索
記憶 兩種 spa post mes efi http 搜索 style 題目描述 求一棵 $[1,n]$ 的線段樹的最大匹配數目與方案數。 $n\le 10^{18}$ 題解 樹形dp+記憶化搜索 設 $f[l][r]$ 表示根節點為 $[l,r]$ 的線段
2018.10.23【SCOI2015】【洛谷P4251】【BZOJ4443】小凸玩矩陣(二分答案)(二分圖匹配)
洛谷傳送門 解析: 並不知道這道題為什麼在洛谷上是紫題,感覺好水啊。 思路: 把行和列分別當做兩部分圖,中間連邊,可以發現這是一個二分圖匹配。 既然要求kkk大值最小,顯然想到二分。那就是第n−k+1