配对
来源:互联网 发布:淘宝怎么绑定手机号 编辑:程序博客网 时间:2024/04/28 18:28
给出一棵n个点的树,将这n个点两两配对,求所有可行的方案中配对两点间的距离的总和最大为多少。
Input
一个数n(1<=n<=100,000,n保证为偶数)接下来n-1行每行三个数x,y,z表示有一条长度为z的边连接x和y(0<=z<=1,000,000,000)
Output
一个数表示答案
Input示例
61 2 11 3 11 4 13 5 14 6 1
Output示例
7//配对方案为(1,2)(3,4)(5,6)
#include <iostream>#include <vector>using namespace std;typedef long long int ll;const int MAXN = 1e5 + 5;struct Edge{ Edge(int t, int l) { to = t; len = l; } int to; int len;};vector<Edge> edges[MAXN];ll result = 0;int n;ll dfs(int u, int prev){ ll num = 1; for (int i = 0; i < edges[u].size(); i++) { int to = edges[u][i].to; if (to == prev) { continue; } int len = edges[u][i].len; ll childNum = dfs(to, u); num += childNum; childNum = min(childNum, n - childNum); result += childNum * len; } return num;}int main(){ cin >> n; int x, y, z; for (int i = 0; i < n-1; i++) { cin >> x >> y >> z; edges[x].push_back(Edge(y, z)); edges[y].push_back(Edge(x, z)); } dfs(1, -1); cout << result << endl; return 0;}
阅读全文
0 0
- 配对
- 配对
- 生肖配对
- 括号配对
- 括号配对
- 蓝牙配对
- 【贪心】配对
- 括号配对
- 括号配对
- 括号配对
- 配对堆
- 括号配对
- 括号配对
- 括号配对
- OPP配对
- 数组配对
- 括号配对
- 括号配对
- hdu 6096 ac自动机 和 处理字符串分段输入
- 国庆怎么过
- Average Score
- lg2782 友好城市
- python(四)二分查找法
- 配对
- 快速理解VirtualBox的四种网络连接方式
- activity启动黑屏的解决方案
- Linux系统Java连接Mysql数据库
- JAVA学习总结之Set集合
- Spring 4.3.11.RELEASE文档阅读(二):Core Technologies_IOC
- 其他网络层协议
- facebook开源库-Bolts中文文档
- 【子网划分两个实例】通过子网数来划分子网和通过计算主机数来划分子网