BZOJ4987:Tree(树形DP)
Description
Input
Output
Sample Input
1 2 35129
2 3 42976
3 4 24497
2 5 83165
1 6 4748
5 7 38311
4 8 70052
3 9 3561
8 10 80238
Sample Output
Solution
那么我们可以进行树形dp,设f[i,j,0/1/2]表示以i为根的子树选了j个点,且直径的端点已经选了0/1/2个的最优方案。
Code
#include<iostream>
#include<cstring>
#include<cstdio>
#define N (3009)
using namespace std; struct Edge{int to,next,len;}edge[N<<];
int n,m,u,v,l,ans,INF,size[N],f[N][N][],tmp[N][];
int head[N],num_edge; void add(int u,int v,int l)
{
edge[++num_edge].to=v;
edge[num_edge].len=l;
edge[num_edge].next=head[u];
head[u]=num_edge;
} void Min(int &x,int y){x=min(x,y);} void Dfs(int x,int fa)
{
size[x]=;
for (int i=;i<=n;i++)
for (int j=;j<=;j++)
f[x][i][j]=INF;
f[x][][]=f[x][][]=f[x][][]=;
for (int i=head[x]; i; i=edge[i].next)
if (edge[i].to!=fa)
{
Dfs(edge[i].to,x);
for (int j=; j<=size[x]+size[edge[i].to]; ++j)
tmp[j][]=tmp[j][]=tmp[j][]=INF;
for (int j=; j<=size[x]; ++j)
for (int k=; k<=size[edge[i].to]; ++k)
{
int to=edge[i].to,len=edge[i].len;
Min(tmp[j+k][],f[x][j][]+f[to][k][]+len*);
Min(tmp[j+k][],f[x][j][]+f[to][k][]+len*);
Min(tmp[j+k][],f[x][j][]+f[to][k][]+len);
Min(tmp[j+k][],f[x][j][]+f[to][k][]+len);
Min(tmp[j+k][],f[x][j][]+f[to][k][]+len*);
Min(tmp[j+k][],f[x][j][]+f[to][k][]+len*);
}
size[x]+=size[edge[i].to];
for (int j=; j<=size[x]; ++j)
for (int k=; k<=; ++k)
f[x][j][k]=min(f[x][j][k],tmp[j][k]);
}
ans=min(ans,f[x][m][]);
} int main()
{
memset(&INF,0x3f,sizeof(INF));
scanf("%d%d",&n,&m);
for (int i=; i<=n-; ++i)
{
scanf("%d%d%d",&u,&v,&l);
add(u,v,l); add(v,u,l);
}
ans=INF; Dfs(,);
printf("%d\n",ans);
}
BZOJ4987:Tree(树形DP)的更多相关文章
- 熟练剖分(tree) 树形DP
熟练剖分(tree) 树形DP 题目描述 题目传送门 分析 我们设\(f[i][j]\)为以\(i\)为根节点的子树中最坏时间复杂度小于等于\(j\)的概率 设\(g[i][j]\)为当前扫到的以\( ...
- hdu-5834 Magic boy Bi Luo with his excited tree(树形dp)
题目链接: Magic boy Bi Luo with his excited tree Time Limit: 8000/4000 MS (Java/Others) Memory Limit: ...
- CF 461B Appleman and Tree 树形DP
Appleman has a tree with n vertices. Some of the vertices (at least one) are colored black and other ...
- codeforces 161D Distance in Tree 树形dp
题目链接: http://codeforces.com/contest/161/problem/D D. Distance in Tree time limit per test 3 secondsm ...
- hdu6035 Colorful Tree 树形dp 给定一棵树,每个节点有一个颜色值。定义每条路径的值为经过的节点的不同颜色数。求所有路径的值和。
/** 题目:hdu6035 Colorful Tree 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6035 题意:给定一棵树,每个节点有一个颜色值.定 ...
- 5.10 省选模拟赛 tree 树形dp 逆元
LINK:tree 整场比赛看起来最不可做 确是最简单的题目. 感觉很难写 不过单独考虑某个点 容易想到树形dp的状态. 设f[x]表示以x为根的子树内有黑边的方案数. 白边方案只有一种所以不用记录. ...
- Codeforces Round #263 Div.1 B Appleman and Tree --树形DP【转】
题意:给了一棵树以及每个节点的颜色,1代表黑,0代表白,求将这棵树拆成k棵树,使得每棵树恰好有一个黑色节点的方法数 解法:树形DP问题.定义: dp[u][0]表示以u为根的子树对父亲的贡献为0 dp ...
- codeforces Round #263(div2) D. Appleman and Tree 树形dp
题意: 给出一棵树,每个节点都被标记了黑或白色,要求把这棵树的其中k条变切换,划分成k+1棵子树,每颗子树必须有1个黑色节点,求有多少种划分方法. 题解: 树形dp dp[x][0]表示是以x为根的树 ...
- POJ 2486 Apple Tree(树形DP)
题目链接 树形DP很弱啊,开始看题,觉得貌似挺简单的,然后发现貌似还可以往回走...然后就不知道怎么做了... 看看了题解http://www.cnblogs.com/wuyiqi/archive/2 ...
随机推荐
- Redis 【string】 一句话说明
APPEND----------------------------------------------在字符串后面追加 BITCOUNT------------------------------- ...
- 使用FileSystemWatcher监视指定目录
使用 FileSystemWatcher 监视指定目录中的更改.可监视指定目录中的文件或子目录的更改. 以下是一个简单的实例,用来监控指定目录下文件的新增.删除.重命名等情况(文件内容更改会触发多次, ...
- PHP反射ReflectionClass、ReflectionMethod 学习笔记 (一)
PHP5 具有完整的反射API,添加对类.接口.函数.方法和扩展进行反向工程的能力. 反射是什么? 它是指在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类.方法.属性.参数等的详细信息,包括 ...
- js 千分位符号 正则方法
function toThousands(num) { return (num || 0).toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');}
- 微信授权错误:"errcode":40163,"errmsg":"codebeenused
微信网页授权获取code值回调两次的问题 1.说是域名原因,目前未测试,没有正确的域名 问题描述:在调用微信网页授权获取openid值时,先获取的code值,但是code值的接口 会走两次回调.而co ...
- 十六、Condition等待通知
一.简介 我们可以使用syncronized和wait,notify实现等待通知.而syncronized的高级实现Lock,也可以实现等待通知,需要构造Condition的实例对象. JDK文档:h ...
- 二、hbase shell工具
hbase单节点安装请参考: https://www.cnblogs.com/lay2017/p/9944387.html 下文演示hbase shell工具常用的命令,首先启动hbase以及进入sh ...
- 微软2016校园招聘在线笔试-Professor Q's Software
题目2 : Professor Q's Software 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Professor Q develops a new softw ...
- js-js的不重载
* 什么是重载?方法名相同,参数列表不同 - Java里面有重载 * js里面不存在重载! <html> <head> <title>World</title ...
- Myeclipse下集成SVN插件
一.下载SVN插件subclipse 下载地址:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240 在 ...