树形DP,dp[i][j]表示i子树中,选了j个白点,i子树中所有边的贡献。

 /**************************************************************
Problem: 4033
User: idy002
Language: C++
Result: Accepted
Time:6568 ms
Memory:32492 kb
****************************************************************/ #include <cstdio>
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))
#define oo 0x3f3f3f3f3f3f3f3fLL
#define N 2010 typedef long long dnt; int n, m;
int head[N], next[N+N], dest[N+N], wght[N+N], etot;
dnt siz[N];
dnt dp[N][N], pp[N]; void adde( int u, int v, int w ) {
etot++;
wght[etot] = w;
dest[etot] = v;
next[etot] = head[u];
head[u] = etot;
}
void dfs( int u, int fa ) {
siz[u] = ;
for( int t=head[u]; t; t=next[t] ) {
int v=dest[t];
if( v==fa ) continue;
dfs( v, u );
siz[u] += siz[v];
}
int maxc = min( siz[u], m );
for( int c=; c<=maxc; c++ )
pp[c] = -oo;
pp[] = ;
for( int t=head[u]; t; t=next[t] ) {
int v=dest[t], w=wght[t];
if( v==fa ) continue;
for( int c=maxc; c>=; c-- ) {
int msc = min( c, siz[v] );
for( int sc=; sc<=msc; sc++ ) {
dnt tv = pp[c-sc]+dp[v][sc]+((dnt)sc*(m-sc)+(siz[v]-sc)*(n-m-siz[v]+sc))*w;
pp[c] = max( pp[c], tv );
}
}
}
dp[u][] = pp[];
for( int c=; c<=maxc; c++ )
dp[u][c] = max( pp[c], pp[c-] );
} int main() {
scanf( "%d%d", &n, &m );
if( n-m<m ) m=n-m;
for( int i=,u,v,w; i<n; i++ ) {
scanf( "%d%d%d", &u, &v, &w );
adde( u, v, w );
adde( v, u, w );
}
dfs(,);
printf( "%lld\n", dp[][m] );
}

最新文章

  1. CSS性能分析,如何优化CSS提高性能
  2. font-family常见字体
  3. node.js学习资料
  4. Bootstrap3.0学习第十四轮(分页、徽章)
  5. wp8 安装.Net3.5
  6. word中设置前几页为罗马数字,后几页设置为阿拉伯数字
  7. delphi 基础之三 编写和调用dll文件
  8. HDU 3533 Escape BFS搜索
  9. 安装cocoaPod 的问题
  10. Python学习之编写三级菜单(Day1,作业二)
  11. Liniux系统下目录的权限意义
  12. 如何禁止火狐onblur时alert()产生类似选中的拖蓝效果
  13. 版本名称GA的含义:SNAPSHOT-&gt;alpha-&gt;beta-&gt;release-&gt;GA
  14. Windows 查看端口占用情况
  15. SQL-1--语句分类
  16. Proxy --支持的拦截操作篇
  17. Vue.js项目集成ElementUI
  18. 第八周(3) Word2007样式
  19. IE和Firefox之间的JavaScript差异
  20. homework5 for java

热门文章

  1. python几种装饰器的用法
  2. spring学习之三 数据库操作jdbcTemplate
  3. MyEclipse文本对比界面样式修改
  4. 字体格式类型(.eot/.otf/.woff/.svg)
  5. thinkphp模版常量替换机制
  6. 关于move
  7. linux下nc提交web报文问题
  8. 大数据统计分析平台之三、Kibana安装和使用
  9. HA下的Spark集群工作原理解密
  10. Azkaban(一)Azkaban的基础介绍