題解P3354 IOI2005 Riv 河流

2022-06-20 20:18:16 字數 761 閱讀 5014

p3354 [ioi2005]riv 河流

這是一道比較好的樹型dp,在參考了網上的一些題解後,蒟蒻終於把它給做了出來

可以看到這道題如果只用二維表示狀態明顯是不夠的

所以設狀態\(f_\)表示\(i\)為根節點,\(j\)為它的乙個建有伐木場的父節點,\(k\)為\(i\)與它的子樹共建的伐木場的數量

考慮再開乙個陣列\(g_\)表示\(i\)這個點建了伐木場,狀態含義同\(f\)

狀態轉移方程結合**講解

#include#include#includeusing namespace std;

const int n = 105, m = 205;

int n, k, siz[n], f[n][n][n], g[n][n][n], sum[n], stk[n];

int head[n], ver[m], net[m], edge[m], w[n], idx, top;

void add(int a, int b, int c)

void dfs(int u)}}

}//因為上面列舉是假設的是$f$表示沒建伐木場,$g$表示建了,並且$g$中$i$這個伐木場並沒有算進去,所以下面要減一

for (int j = 1; j <= top; j++)

top--;

}int main()

dfs(0);

printf("%d", f[0][0][k]);

return 0;

}

題解 P2577 ZJOI2005 午餐

題目大意 每個人有乙個打飯時間和吃飯時間,求把所有人分到兩個隊伍,所有人都吃完飯的最短時間 動態規劃,貪心 分析 既然每個人有乙個吃飯時間和打飯時間,我們可以大膽猜想,讓吃的慢的人先打飯 我有乙個比較迷的證明,不知道對不對 假如只有乙個佇列,設打飯時間為 a 吃飯時間為 b ans max a j ...

P2324 SCOI2005 騎士精神 題解

csdn同步 原題鏈結 簡要題意 給定乙個初始棋盤,每次乙個馬可以跳到空位 不考慮蹩腿問題 求到達目標棋盤的最小步數。本題其實是 八數碼難題 的乙個強化版,可以去看看 p1379 八數碼難題 題解.首先本題肯定是搜尋。咦?texttt 的效率不是嚴格不優於 texttt 的麼?為什麼還要用它呢?嗯,...

題解 P1403 AHOI2005 約數研究

題目 看到題解區很多人直接給出結論 答案為 displaystyle sum n lfloor rfloor 沒給出證明,這裡給出證明 首先,我們可以知道 displaystyle f n sum 1 有的同學看不懂這個公式,我解釋一下,這個公式表達 列舉 n 的因數 d 每列舉乙個因數 d f n...