题解:

其实贪心地算就可以了

一个最优的分配就是每条边权贡献的值为min(k, sz[x]),sz[x]是指子树的大小

然后最后加起来就是答案。

#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
#include <set>
#define fi first
#define se second
using namespace std;
const int maxn = 1e6 + ;
typedef pair<long long, int> PLI;
typedef pair<int, long long> PIL;
vector<PIL> G[maxn];int sz[maxn], k;
long long ans = ;
void dfs(int x, int fa){
sz[x] = ;
for(auto e : G[x]){
if(e.fi == fa) continue;
dfs(e.fi, x);
sz[x] += sz[e.fi];
ans += min(k, sz[e.fi])*e.se;
}
} int main()
{
int x, y, v, n;
while(cin>>n>>k){
ans = ;
for(int i = ; i <= n; i++) G[i].clear();
for(int i = ; i < n; i++){
scanf("%d %d %d", &x, &y, &v);
G[x].push_back({y, v});
G[y].push_back({x, v});
}
dfs(, );
cout<<ans<<endl;
}
}

最新文章

  1. 如何让C#像JavaScript一样编程
  2. ASP.NET 5与MVC 6中的新特性
  3. windows添加虚拟网卡
  4. 【C#】委托
  5. NimBus一个好的开发框架
  6. google模拟各种Android手机浏览器方法
  7. Swift - 告警提示框(UIAlertController)的用法
  8. C#总结(二)事件Event 介绍总结
  9. .NET链接Oracle 参数绑定问题
  10. mysql的复杂查询,连接数据库
  11. 2018上C语言程序设计(高级)作业- 第1次作业
  12. WPF TextBlock 判断 isTextTrimmed 文本是否超出
  13. phpstorm本地怎么上传到服务器
  14. How do I copy files that need root access with scp
  15. Android从启动到程序运行整个过程的整理
  16. 【bfs】迷宫问题
  17. js 图片压缩上传(纯js的质量压缩,非长宽压缩)
  18. 语音笔记:MFCC
  19. __getattr__和__setattt__使用
  20. (实用)pip源

热门文章

  1. sudo及visudo
  2. C#中的线程(二)线程同步基础 (读后感)
  3. 电子商城实录------定义init初始化的方法
  4. MIP缓存加速原理 MIP不仅仅只是CDN
  5. struts2架构网站漏洞修复详情与利用漏洞修复方案
  6. stm32+lwip(三):TCP测试
  7. Using ARR to setup a proxy
  8. java 上溯造型与下塑造型
  9. CSS3实现加载数据动画2
  10. ORB-SLAM 代码笔记(三)tracking原理