洛谷2279 消防局的設立

2022-06-02 06:36:07 字數 961 閱讀 1127

資料範圍:

\(f(i,3)\)表示\(i\)的所有兒子節點一定被消防局覆蓋。

\(f(i,4)\)表示\(i\)的所有孫子節點一定被消防局覆蓋。

轉移方程:

\(f(i,1)=min(f(k,0)+\sum_min(f(j,0...3))\)。

\(f(i,2)=min(f(k,1)+\sum_min(f(j,0...2))\)。

\(f(i,3)=\sum min(f(j,0...2))\)。

\(f(i,4)=\sum min(f(j,0...3))\)

發現了所有的狀態都是0~?這樣的形式,所以令\(f(i,j)\)表示\(min(f(i,0...k))\)

因此有:

\(f(i,2)=f(i,3)+min(f(j,1)-f(j,2))\).

\(f(i,3)=\sum f(j,2)\).

\(f(i,4)=\sum f(j,3)\).

#includeusing namespace std;

const int maxn = 1000 + 10;

const int inf = 0x3f3f3f3f;

int a[maxn], n;

bool g[maxn][maxn];

int f[maxn][10];

int main()

for(int i = n, x1, x2; i >= 1; i--)

}f[i][1] = f[i][4] + x1;

f[i][2] = min(f[i][3]+x2, min(f[i][0], f[i][1]));

f[i][3] = min(f[i][2], f[i][3]);

f[i][4] = min(f[i][3], f[i][4]);

}cout << f[1][2] << endl;

return 0;

}

洛谷2279消防局的設立

題目描述 2020年,人類在火星上建立了乙個龐大的基地群,總共有n個基地。起初為了節約材料,人類只修建了n 1條道路來連線這些基地,並且每兩個基地都能夠通過道路到達,所以所有的基地形成了乙個巨大的樹狀結構。如果基地a到基地b至少要經過d條道路的話,我們稱基地a到基地b的距離為d。由於火星上非常乾燥,...

洛谷P2279消防局的設立

傳送門啦 乙個很摸不清頭腦的樹形dp 狀態 dp i 0 選自己 dp i 1 選了至少乙個兒子 dp i 2 選了至少乙個孫子 覆蓋了自己的 dp i 3 兒子孫子全部覆蓋 dp i 4 孫子全部覆蓋 並沒有覆蓋自己 初始轉移方程 dp i 0 1 sum min dp j 0.4 要使選了根節點...

洛谷 2279 HNOI2003 消防局的設立

題目描述 2020年,人類在火星上建立了乙個龐大的基地群,總共有n個基地。起初為了節約材料,人類只修建了n 1條道路來連線這些基地,並且每兩個基地都能夠通過道路到達,所以所有的基地形成了乙個巨大的樹狀結構。如果基地a到基地b至少要經過d條道路的話,我們稱基地a到基地b的距離為d。由於火星上非常乾燥,...