假日住宿題解
1.題面
2.前言
太妙了啊太妙了
3.分析
大體思路:列舉每一條邊,每一條邊都對應著兩個點 ( u , v ) (u, v) (u,v) ,從這條邊斷開後,將出現以 u u u , v v v 為根節點的兩顆樹,我們就將這條邊最大化利用,就是將在左子樹的人儘可能多的移動到右子樹去(這樣一定會經過 e d g e ( u , v ) edge(u, v) edge(u,v) ),右子樹同理,由於每個城市只能由一個人,所以在兩顆樹上的人交換過去的數量為兩棵子樹節點數量的最小值。
ATTENTION :為什麼這樣做不會出現一個人多次走一條邊的情況呢?因為我們列舉的是邊,假設的是讓兩棵樹上的人交換,所以之後我們不會再遍歷這條邊了,又因為道路是一棵樹,所以不會出現環,所以也不會出現走回原點的情況。
4.參考程式碼
#include <cstdio>
#include <cstring>
#define LL long long
const int MAXN = 1e5 + 5;
int t, n;
LL ans;
LL dp[MAXN];
int len;
int head[MAXN];
struct edge {
int to, next, val;
}e[MAXN * 2];//切記乘以2
void add (int, int, int);//鏈式前向星儲存邊
void dfs (int, int);//樹形dp求出以每個節點為根節點的子樹的大小
void init ();//初始化
LL Min (LL x, LL y) { return x < y ? x : y; }
int main () {
scanf ("%d", &t);
while (t--) {
init ();
scanf ("%d", &n);
for (int i = 1; i < n; i++) {
int x, y, val; scanf ("%d %d %d", &x, &y, &val);
add (x, y, val); add (y, x, val);
}
dfs (1, -1);
printf ("%lld\n", ans);
}
return 0;
}
void init () {
memset (head, 0, sizeof head);
memset (dp, 0, sizeof dp);
ans = 0; len = 0;
}
void add (int x, int y, int val) {
e[++len].to = y;
e[len].next = head[x];
e[len].val = val;
head[x] = len;
}
void dfs (int u, int father) {
dp[u] = 1;
for (int i = head[u]; i; i = e[i].next) {
int v = e[i].to, w = e[i].val;
if (v == father) continue;
dfs (v, u);
ans += 2 * w * Min (dp[v], n - dp[v]);//一顆子樹的大小為dp[v],另一顆子樹的大小就為n - dp[v]了
dp[u] += dp[v];
}
}
相關文章
- 【Contest】Nowcoder 假日團隊賽1 題解+賽後總結
- 北京市假日辦:2019年北京中秋節假日旅遊工作報告
- Retail TouchPoints:2023年假日指南AI
- 工作日和節假日apiAPI
- 2018年中國住宿業市場網路口碑報告解讀
- 小米節假日API, 查詢調休API
- 節假日查詢 API 介面上線API
- Thinknow:2023年假日消費報告
- Adobe:2019年假日購物趨勢
- Bluedot:2020年假日習慣報告
- 題解
- 解題
- 每日"兩"題 題解
- 益普索:2022年假日晴雨表報告
- NRF:2021年假日購物季報告
- 德勤:2021年假日旅遊報告
- Adobe:2020年假日購物季預測
- XYCTF pwn部分題解 (部分題目詳解)
- 無題號 分配問題 題解
- 火星商店問題 題解
- LeetCode題解第122題LeetCode
- 關於北京開具住宿費發票?
- 排列 題解
- 20240805題解
- Determinant 題解NaN
- 20240726題解
- 題解集合
- Minlexes題解
- 杯子題解
- OVO題解
- 德勤:2024年德勤假日購物調查
- 埃森哲:2023年假日購物調查
- 搶灘北美:2022假日購物季營銷洞察
- Golang如何實現節假日不打擾使用者?Golang
- 益普索:2022年假日購物報告
- Mastercard:2022美國假日季零售資料AST
- 埃森哲:2022年假日購物調查
- Sitecore:2021年假日購物趨勢報告