樹形DP(完美的服務,uva 1218)

2021-07-22 22:26:30 字數 396 閱讀 6308

inf不能弄太大,因為會不停地累加很多次,事實上加三次就爆了。inf一直習慣了用0x3f3f3f3f,這不好,特別是dp時狀態轉移需要累加的情況,應該弄得比可能的上界再大一點點就好了。或者你可以不停地判斷,讓值最高只能達到inf。

**#include#define maxn 10010

#define inf 10010

using namespace std;

int n;

vectormap[maxn];

int dp[3][maxn];

void dfs(int u,int f)

{ dp[0][u]=1;

dp[1][u]=0;

dp[2][u]=inf;

for(unsigned int i=0;i

樹形dp 完美的服務UVA1218

一道樹形dp卡了這麼久。題意 乙個書中,每個點都可以安伺服器,問最少多少伺服器可以使每個不是伺服器的點恰好只與乙個伺服器相鄰 把每個點分情況討論 1.自己安伺服器 2.自己不安,父節點安,這樣所有子節點不能安 3自己不安,父節點不安,這樣有且只有乙個子節點安 設dp i 0 為i及其子樹,當i安伺服...

UVA 1218 完美的服務

樹上的動態規劃,仍然按照每個節點的情況分類 1.f u 0 表示u是伺服器,那麼每個子節點可以是也可以不是 2.f u 1 表示u不是伺服器,而u的父親是伺服器,則u的所有子節點都不是伺服器 3.f u 2 表示u和父親都不是伺服器,則u恰好有乙個兒子是伺服器 那麼可以得到以下轉移方程 v代表u的所...

Uva 1218 完美的服務

題意 乙個網路,選出一些點做伺服器,使滿足一些條件,求伺服器最少數量。條件是,每個計算機恰有一台伺服器相連。分析 對於每個節點,都有3種狀態,1 他是伺服器 d u,0 2 他不是伺服器,但是父親是的 d u,1 如果他父親是伺服器,將影響他的接下來的決策。3 他不是伺服器,父親也不是伺服器 d u...