HDU 4118 Holiday's Accommodation(树形DP)
来源:互联网 发布:淘宝视频下载器破解版 编辑:程序博客网 时间:2024/05/22 08:57
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4118
题意:一棵树上每个结点住着一个人,让所有的人交换结点,求最终这些人所走过的边的权值之和
思路:对于每一条边,我们都需要使它尽可能多的被走过,那么最好的走过这条边的策略就是这边的权值乘上以该边为分界的两子树中较少的点数再×2,注意long long 和 递归爆栈
#include <cstdio>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <string>#include <set>#pragma comment (linker, "/STACK:1024000000,1024000000")using namespace std;const int maxn = 100010;int n, cnt;long long sum;int head[maxn];struct edge{ int to, nxt, w;} e[maxn * 2];void init(){ cnt = sum = 0; memset(head, -1, sizeof(head));}void add(int u, int v, int w){ e[cnt].to = v; e[cnt].w = w; e[cnt].nxt = head[u]; head[u] = cnt++;}int dfs(int u, int fa, int w){ int siz = 1; for(int i = head[u]; ~i; i = e[i].nxt) { int v = e[i].to; if(v == fa) continue; siz += dfs(v, u, e[i].w); } int res = min(siz, n - siz); sum += (long long) res * w * 2; return siz;}int main(){ int t; cin >> t; for(int ca = 1; ca <= t; ca++) { init(); printf("Case #%d: ", ca); scanf("%d", &n); for(int i = 1; i <= n - 1; i++) { int u, v, w; scanf("%d%d%d", &u, &v, &w); add(u, v, w); add(v, u, w); } dfs(1, -1, 0); cout << sum << endl; } return 0;}
0 0
- 【树形DP】 HDU 4118 Holiday's Accommodation
- hdu 4118 Holiday's Accommodation 树形dp
- hdu 4118 Holiday's Accommodation 树形dp
- HDU 4118--Holiday's Accommodation(树形dp)
- HDU 4118 Holiday's Accommodation(树形DP)
- hdu 4118 Holiday's Accommodation 思维+树形dp
- 树形DP(Holiday's Accommodation HDU4118)
- hdu4118 Holiday's Accommodation(树形dp)
- HDU 4118 Holiday's Accommodation
- HDU-4118-Holiday's Accommodation
- hdu 4118 Holiday's Accommodation
- HDU - 4118 Holiday's Accommodation
- hdu Holiday's Accommodation
- Holiday's Accommodation HDU
- HDU 4118 Holiday's Accommodation 贪心(树的重心)
- hdu 4118 Holiday's Accommodation 树上统计
- hdu Holiday's Accommodation dfs
- HDOJ 4118 Holiday's Accommodation
- nginx日志分析利器GoAccess
- iOS时间格式
- 是国家和广大科技化工肯定会概括地讲更好的空间规划分局肯定会
- android广播初步----使用广播接收者窃听短信
- 1003
- HDU 4118 Holiday's Accommodation(树形DP)
- android的各种传感器
- input与图片水平对齐
- 博客请你收下我吧
- linux负载
- 环境变量
- 用C为LUA写一个超迷你的模板引擎.
- 安装10g遇到新问题
- 感受如何啊虽然他很讨人世博热好悲伤