原创 迷のA+B problem

 爲什麼我要單獨開個專欄放一個A+B problem這道每個oj上基本都是第一題的大水題=-= 大概原因是....這道題真的很有魅力(智力)... 事實上主要原因在於老是被機房中的神犇吐槽頭文件太多...    其實只是爲了打代碼方便

原创 Codeforces 161 D Distance in Tree 樹形DP

題目大意:給出一棵n個節點的樹,統計樹中長度爲k的路徑的條數(1<=n<=50000 ,1<=k<=500); 題目分析:設dp[i][j]表示以i作爲長度爲j的路徑其中一個點的方案數。轉移:dp[u][j]+=dp[v][j-

原创 Codeforces 543 D Road Improvement 樹形dp

題目大意:給定n個點的樹 問: 對於以i爲根時,把樹邊黑白染色,使得任意點走到根的路徑上不超過一條黑邊,輸出染色的方案數(mod 1e9+7); 題目分析:對於節點u,與其所有聯通的節點v,存在f[u]*=(f[v]+1); 即 當該邊

原创 BZOJ1603 NOI2008 設計路線 樹形dp

題目大意:給定一個根節點爲1的樹,要求在樹中找到一些不相交的鏈,使得每個節點的不便利值得最大值最小,並求出滿足條件的方案個數。一個節點的不便利值就是從該節點到根的路徑上經過的非鏈邊的條數。 題目分析:對於無解的情況是很好處理的,對於題目

原创 【bzoj3522】[Poi2014]Hotel 暴力+計數

題目大意:給定一棵樹,選取樹上三個點,使得三個點任意兩點之間距離相等,問方案數。 題目分析:對於任意三個點,要麼處於一條鏈,或者不處於同一條鏈。顯然處於一條鏈時不滿足題意。所以必然這三個點是有一箇中心使得該點到三個點距離相等。所以暴力枚

原创 Codeforces 23 E Tree 樹形dp+高精

題目大意:給你一棵樹,讓你切斷一些邊,使得剩下的每個連通塊的點的個數的乘積最大,輸出這個乘積。 題目分析: 由於題目要求各個連通塊點的乘積,設狀態dp[i][j]表示i作爲一個連通塊時其點個數爲j時候的值。每次枚舉與當前節點聯通的其他節

原创 poj 1987 Distance Statistics 點分治

題目大意: 給你一棵樹,問兩個點對距離<=k的點對個數; 題目分析:點分治裸題。dfs處理出每個重心(分治下)到當前子樹根節點的距離存在dis數組中,o(n)直接找出。 但要注意的是,對於dis所存的距離,只適用於兩個不同的子樹當中,所

原创 樹形動態規劃總結

本文部分題目出自《樹的動態規劃與構造》一文 /*問題可以分解成若干相互聯繫的階段,在每一個階段都要做出決策,全部過程的決策是一個決策序列。要使整個活動的總體效果達到最優的問題,稱爲多階段決策問題。動態規劃就是解決多階段決策最優化問題的一

原创 hdu 3555 bomb 數位dp

題目大意:給定n個數x,求出1..x含有49的數的個數。 題目大意:數位dp,思路和hdu2089差不多。求出1..x不含49的數的個數,相減即可。 #include<cstdio> #include<cstdlib> #includ

原创 【bzoj1912】[Apio2010] patrol 巡邏 樹形dp

題目大意:給你一棵樹,你可以連k條邊(1<=k<=2),使得每個點都遍歷過一次且經過的邊數最少。 題目分析:對於一棵樹來說,遍歷所有的點最少需要將每條邊走兩次,即2*(n-1)。顯然當k==1時將直徑的兩個端點相連,便可以使原來直徑上的

原创 【bzoj1369】[Baltic2003]Gem 樹形dp

題目大意:給定一棵樹,要你爲他標上權值且兩點間權值不能相同。問最小的權值總和爲多少。 題目分析:WJMZBMR表示這道題並不能用奇數層染色的方法來做。因爲可以構造出貪心反例(用大量的葉子節點強迫某個節點選2)。所以考慮樹形dp。 設狀態

原创 Tyvj P1520 樹的直徑

http://www.tyvj.cn/p/1520 題目大意:求樹的直徑 題目分析:詳見本欄目總結。 #include<cstdio> #include<cstdlib> #include<cstring> #include<ios

原创 vijos 1892 樹上的最大匹配問題 樹形dp

https://vijos.org/p/1892 題目大意:樹上的最大匹配是多少? 最大匹配解的方案共有多少組? (首先樹可以被看作是一個無向圖G.(對於無向圖G來說, 其上的最大匹配是邊集的一個子集, 滿足:(對於G中每一個點來說,

原创 HNOI 2012 射箭 半平面交

http://www.lydsy.com/JudgeOnline/problem.php?id=2732 Description 沫沫最近在玩一個二維的射箭遊戲,如下圖 1 所示,這個遊戲中的 x 軸在地面,第一象限中有一些豎直

原创 BZOJ 1812 Ioi2005 riv 樹形dp

題目大意:給定一棵樹,每個點有權值,每條邊有邊權(單向邊)。你可以選取K個黑點,使得從每個點移動到距離他最近的黑點的花費(距離*點權)的總和最小。 題目分析:先將該樹轉化成二叉樹方便動態規劃。由於當前節點i的子樹的花費與最近的黑點j有關