bzoj4033 [HAOI2015]树上染色

题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4033

重要的思路:与其考虑每一个点对的贡献,不如考虑每条边的贡献(==被经过了几次)!

树形dp。

总共的黑点和白点的个数都是已知的,所以知道子树里有多少个黑点,就能算出子树的根到它的父亲的那条边被经过多少次。

  (因为子树中黑点数是包含根的,所以求子树向外的那条边比较方便)

#include<iostream>
#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;
const int N=2005;
int n,k,head[N],xnt,rt,siz[N];
ll dp[N][N],ed[N];
struct Edge{int next,to;ll w;Edge(int n=0,int t=0,ll c=0):next(n),to(t),w(c) {}
}edge[N<<1];
void add(int a,int b,ll c)
{edge[++xnt]=Edge(head[a],b,c);head[a]=xnt;edge[++xnt]=Edge(head[b],a,c);head[b]=xnt;
}
void dfs(int cr,int fa)
{siz[cr]=1;for(int i=head[cr],v;i;i=edge[i].next){if((v=edge[i].to)==fa)continue;ed[v]=edge[i].w;dfs(v,cr);for(int j=min(k,siz[cr]+siz[v]);j>=0;j--)for(int l=max(0,j-siz[cr]);l<=j&&l<=siz[v];l++)dp[cr][j]=max(dp[cr][j],dp[cr][j-l]+dp[v][l]);siz[cr]+=siz[v];}if(!fa)return;for(int j=0;j<=k&&j<=siz[cr];j++)dp[cr][j]+=(j*(k-j)+(siz[cr]-j)*(n-k-(siz[cr]-j)))*ed[cr];
}
int main()
{scanf("%d%d",&n,&k);int x,y;ll z;for(int i=1;i<n;i++)scanf("%d%d%lld",&x,&y,&z),add(x,y,z);dfs(1,0);printf("%lld",dp[1][k]);return 0;
}

 

转载于:https://www.cnblogs.com/Narh/p/9163724.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251601.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript --- 表单focus,blur,change事件的实现

假设有一个文本框&#xff0c;我们只允许用户输入数值。为此&#xff0c;我们希望: 1.利用focus事件修改文本框内容&#xff0c; 2.利用blur事件回复文本框的内容, 3.利用change事件在用户输入了非数值字符时再次修改背景颜色。 var EventUtil {addHandler: function(element…

mysql日期格式转化

select DATE_FORMAT( 20170701, %Y-%m-%d);先挖坑转载于:https://www.cnblogs.com/tuhooo/p/7766221.html

Solr管理页面 上

DashBoard&#xff08;仪表盘&#xff09;Logging&#xff08;日志&#xff09;Core Admin&#xff08;Core管理&#xff09;在Solr中&#xff0c;每一个Core&#xff0c;代表一个索引库&#xff0c;里面包含索引数据及其配置信息。Solr中可以拥有多个Core&#xff0c;也就同时…

GRPC协议的相关原理

GRPC的Client与Server&#xff0c;均通过Netty Channel作为数据通信&#xff0c;序列化、反序列化则使用Protobuf&#xff0c;每个请求都将被封装成HTTP2的Stream&#xff0c;在整个生命周期中&#xff0c;客户端Channel应该保持长连接&#xff0c;而不是每次调用重新创建Chann…

Echarts --- 各个省份的坐标

纯手打…效果如下 1.新疆: [86.61 , 40.79] 2.西藏:[89.13 , 30.66] 3.黑龙江:[128.34 , 47.05] 4.吉林:[126.32 , 43.38] 5.辽宁:[123.42 , 41.29] 6.内蒙古:[112.17 , 42.81] 7.北京:[116.40 , 40.40 ] 8.宁夏:[106.27 , 36.76] 9.山西:[111.95,37.65] 10.河北:[115.21 , 38.…

xxx征集系统项目目标文档

问题 每四人一组&#xff0c;讨论结束后&#xff0c;每人根据课堂讨论结果提交一份系统利益相关者案例。撰写撰写项目目标文档&#xff08;目标&#xff0c;好处&#xff0c;度量标准。&#xff09; 项目目标文档 目标&#xff1a; &#xff08;1&#xff09;需求填报 &#xf…

高并发大流量专题---10、MySQL数据库层的优化

高并发大流量专题---10、MySQL数据库层的优化 一、总结 一句话总结&#xff1a; mysql先考虑做分布式缓存&#xff0c;过了缓存后就做mysql数据库层面的优化 1、mysql数据库层的优化的前面一层是什么&#xff1f; 数据库缓存&#xff1a;突破了数据库缓存就需要做mysql数据库层…

【彩彩只能变身队】后端工作总结

2018.06.09 早上8点到晚上10点 冲刺前后端交互(vueexpressmysql) 8&#xff1a;00-12&#xff1a;00 &#xff1a; 前端把请求写好&#xff1a; <template> <div class"LoginForm"> <el-form ref"form" label-width"80px"…

web安全

web安全 DOS命令 web攻防必备课笔记 慕课xss学习 阮一峰&#xff1a;MVC、MVP和MVVM的图示转载于:https://www.cnblogs.com/hanxuming/p/7774092.html

JavaScript --- 渲染数据量大的数组

很多时候&#xff0c;需要在页面上展示从后台来的大量数据,如果一次性渲染&#xff0c;会影响用户的体验。(而且浏览器中的JS严格限制了资源) /* *使用分组的思想来渲染大量的数组 *parmas array 要处理的数组 *params process 对数组中每一个item进行的操作 *parmas context …

Jquery操作select小结

每次操作select都要查资料&#xff0c;干脆总结一下。 为select设置placeholder <select class"form-control selOP" placeholder"Pick Orchestration Plan"><option value"" disabled selected styledisplay:none;>Pick Orchestrat…

第六讲:PrintClient工具的使用

一些简单命令&#xff1a; cp -rf 源目录 目的目录 chmod -R 777 文件名 motelist 查看节点路径 make telosb 编译代码 make telosb reinstall 下载但不编译 make telosb install 编译并且下载 make telosb install, 2 bsl,/dev/ttyUSB0 下载指定路径 java net.tinyos.tools.Li…

SQL Server

查看数据库服务器名称&#xff1a;tracert 192.168.10.01 转载于:https://www.cnblogs.com/hongwei2085/p/9174760.html

css --- 选择器

标签选择器 // 标签选择器是最简单的选择器, 它的命名只要和对应的HTML标签相同即可 h1 {font-size: 30px;color: #333; }类选择器 // 类选择器也称为class选择器,它的语法非常简单,在class名称前面加上一个"."符号 <div class"red content"></…

C++标准输入流、输出流以及文件流

1、流的控制 iomanip 在使用格式化I/O时应包含此头文件。 stdiostream 用于混合使用C和C 的I/O机制时&#xff0c;例如想将C程序转变为C程序 2、类继承关系 ios是抽象基类&#xff0c;由它派生出istream类和ostream类&#xff0c; iostream类支持输入输出操作&…

Hadoop学习笔记—8.Combiner与自定义Combiner

一、Combiner的出现背景 1.1 回顾Map阶段五大步骤 在第四篇博文《初识MapReduce》中&#xff0c;我们认识了MapReduce的八大步凑&#xff0c;其中在Map阶段总共五个步骤&#xff0c;如下图所示&#xff1a; 其中&#xff0c;step1.5是一个可选步骤&#xff0c;它就是我们今天需…

6-12mysql库的操作

1&#xff0c;mysql库的各种分类: nformation_schema&#xff1a; 虚拟库&#xff0c;不占用磁盘空间&#xff0c;存储的是数据库启动后的一些参数&#xff0c;如用户表信息、列信息、权限信息、字符信息等.  performance_schema&#xff1a; MySQL 5.5开始新增一个数据库&am…

css --- 行内框和内容区

css规定font-size的大小实际上是字体的高度 可以将内容区理解为font-size的大小. 行内高可以理解为 ( (line-height) - (font-size) ) /2 然后再font-size 的上下加上前面的值 看下面的例子 <p style"font-size:12px;line-height:12px;">this is text, <em&…

DotNetTextBox V3.0 所见即所得编辑器控件 For Asp.Net2.0(ver 3.0.7Beta) 增加多语言!

英文名&#xff1a;DotNetTextBox V3.0 WYSWYG Web Control For Asp.Net2.0 中文名&#xff1a;DotNetTextBox V3.0 所见即所得编辑器控件 For Asp.Net2.0 类型: 免费控件(保留版权) 作者: 小宝.NET 2.0(Terry Deng) 主页&#xff1a;http://www.aspxcn.com.cn 控件演示页面: h…

phantomjs

npm 安装 phantomjs失败&#xff0c;解决办法是到http://phantomjs.org/download.html 下载需要的压缩包&#xff0c;然后放到%appData%\Local\Temp\phantomjs\下&#xff0c;重新执行npm i 转载于:https://www.cnblogs.com/tellme/p/7777626.html