染色
【題目描述】
有一棵點數為 n 的樹,樹邊有邊權。將 m 個點染成黑色,並將其他的點染
成白色。會獲得黑點兩兩之間的距離和加上白點兩兩之間的距離和的收益。問
收益最大值是多少。
【輸入格式】
第一行兩個整數 n、m。接下來 n-1 行,每行三個整數 a、b、c,表示有一
條樹邊連線 a、b,長度為 c。
【輸出格式】
一行乙個正整數,表示收益的最大值。
【樣例輸入】
3 1
1 2 1
1 3 2
【樣例輸出】
3 【資料規模與約定】
30%的資料,n≤15
60%的資料,n≤100
另 20%的資料,這棵樹是一條鏈
100%的資料,0≤m≤n≤2000,1≤c≤1,000,000
有點像揹包
// by spli
#include
#include
#include
#include
#define ll long long
using
namespace
std;
const
int m=2010;
int n,m;
struct nodee[m<<1];int head[m],cnt,siz[m];
int fa[m];
ll f[m][m];
void dfs(int u)}}
}}void add(int f,int t,int v);
head[f]=cnt;
siz[f]++;
}int main()
dfs(1);
cout
<1][m];
return
0;}
NOIP 模擬題 T2 寶藏(樹形dp)
題解 樹形dp 其實這道題說起來很簡單,用四個陣列 d1 d0 u0 u1分別表示從當前點向下更新,不返回 從當前點向下更新再回到當前點 從當前點向上更新回到當前點 從當前點向上更新不返回。用兩遍dfs求出這四個陣列 實現起來細節會比較多,耐心處理 include include include d...
P3914 染色計數 樹形dp
n nn個點每個點有些可以染的顏色,要求相鄰顏色不相同,方案總數。樹形d pdp dp,定義fx,if fx,i 表示點x xx的染顏色i ii的方案數。然後定義zx i 1 mfxi z x sum mf zx i 1m fxi 然後顯然動態轉移方程fx,i zy fy,i x y f z y f...
HAOI2015 樹上染色(樹形dp)
有一棵點數為 n 的樹,樹邊有邊權。給你乙個在 0 n 之內的正整數 k 你要在這棵樹中選擇 k個點,將其染成黑色,並將其他 的n k個點染成白色 將所有點染色後,你會獲得黑點兩兩之間的距離加上白點兩兩之間的距離的和的受益。問受益最大值是多少。輸入格式 第一行包含兩個整數 n,k 接下來 n 1 行...