AcWing 1220 生命之樹

2022-10-09 11:30:15 字數 863 閱讀 2934

題目鏈結

在x森林裡,上帝建立了生命之樹。

他給每棵樹的每個節點(葉子也稱為乙個節點)上,都標了乙個整數,代表這個點的和諧值。

上帝要在這棵樹內選出乙個非空節點集 s,使得對於 s 中的任意兩個點 a,b,都存在乙個點列 使得這個點列中的每個點都是 s 裡面的元素,且序列中相鄰兩個點間有一條邊相連。

在這個前提下,上帝要使得 s 中的點所對應的整數的和盡量大。

這個最大的和就是上帝給生命之樹的評分。

經過 atm 的努力,他已經知道了上帝給每棵樹上每個節點上的整數。

但是由於 atm 不擅長計算,他不知道怎樣有效的求評分。

他需要你為他寫乙個程式來計算一棵樹的分數。

f[u]陣列:在以u為根的子樹中包含u的所有連通塊的權值的最大值。

#include #include #include using namespace std;

typedef long long ll;

const int n = 100010, m = n * 2;

int n;

int w[n];

int h[n], e[m], ne[m], idx;

ll f[n];

void add(int a, int b)

void dfs(int u, int father)

}}int main()

dfs(1, -1);

ll res = f[1];

for (int i = 2; i <= n; i ++ ) res = max(res, f[i]);

printf("%lld\n", res);

return 0;

}

1220 生命之樹

給一棵樹和每個結點的權值,求聯通塊的最大權值和 第一行乙個整數 n 表示這棵樹有 n 個節點。第二行 n 個整數,依次表示每個節點的權值。接下來 n 1 行,每行 2 個整數 u,v 表示存在一條 u 到 v 的邊。由於這是一棵樹,所以是不存在環的。樹的節點編號從 1 到 n 輸出一行乙個數,表示聯...

289 生命遊戲

給定乙個包含 m n 個格仔的面板,每乙個格仔都可以看成是乙個細胞。每個細胞都具有乙個初始狀態 1 即為活細胞 live 或 0 即為死細胞 dead 每個細胞與其八個相鄰位置 水平,垂直,對角線 的細胞都遵循以下四條生存定律 如果活細胞周圍八個位置的活細胞數少於兩個,則該位置活細胞死亡 如果活細胞...

289 生命遊戲

四月份每日一題打卡 4月2日 題目描述 解題思路 在這裡插入 片 public void gameoflife int board int dy int rows board.length int cols board 0 length for int i 0 i rows i 如果周圍細胞數少於兩...