題目鏈結
在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 如果周圍細胞數少於兩...