codevs 1746 贪吃的九头龙
/*
状态定义的没错 就是考试的时候傻啦吧唧的转移左右孩子
其实之转移父亲就简单多了 不用考虑那么多
还有就是偷懒没有把谁有没有找过这个信息转过去
而是搞了个全局变量…wa到挺
再就是特盘的时候还有终止条件写的不好
写的时间也很长 …..
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 510
#define inf 0x3f3f3f3f
using namespace std;
int n,m,K,num,head[maxn],fa[maxn],lc[maxn],rc[maxn],dis[maxn];
int son[maxn][maxn],s[maxn],f[maxn][maxn][],V[maxn];
struct node{int u,v,t,pre;}e[maxn*];
void Add(int from,int to,int dis)
{
num++;e[num].u=from;
e[num].v=to;e[num].t=dis;
e[num].pre=head[from];
head[from]=num;
}
void Dfs(int now,int from)
{
fa[now]=from;
for(int i=head[now];i;i=e[i].pre)
if(e[i].v!=from)
{
son[now][++s[now]]=e[i].v;
dis[e[i].v]=e[i].t;
Dfs(e[i].v,now);
}
}
void Build()
{
for(int i=;i<=n;i++)
for(int j=;j<=s[i];j++)
{
int u=i,v=son[i][j];
if(lc[u]==){lc[u]=v;continue;}
u=lc[u];while(rc[u])u=rc[u];
rc[u]=v;
}
}
int C(int t)
{
if(m==&&t==)return ;
else return ;
}
int DP(int k,int p,int t)
{
if(k==&&p)return f[k][p][t]=inf;
if(f[k][p][t]>=)return f[k][p][t];
if(k==&&p==)return ;
int r=inf;
for(int i=;i<=p;i++)
{
int s1=p-i,s2=i;
r=min(r,DP(lc[k],s1,)+DP(rc[k],s2,t)+C(t)*dis[k]);
}
for(int i=;i<=p-;i++)
{
int s1=p-i-,s2=i;
r=min(r,DP(lc[k],s1,)+DP(rc[k],s2,t)+t*dis[k]);
}
return f[k][p][t]=r;
}
int main()
{
scanf("%d%d%d",&n,&m,&K);
if(n-K<m-){printf("-1\n");return ;}
memset(f,-,sizeof(f));
int a,b,c;
for(int i=;i<n;i++)
{
scanf("%d%d%d",&a,&b,&c);
Add(a,b,c);Add(b,a,c);
}
Dfs(,);Build();V[]=;
printf("%d\n",DP(lc[],K-,));
return ;
}
codevs 1746 贪吃的九头龙的更多相关文章
- Vijos1523贪吃的九头龙【树形DP】
贪吃的九头龙 传说中的九头龙是一种特别贪吃的动物.虽然名字叫"九头龙",但这只是说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的总数会远大于九,当然也会有旧头 ...
- [codevs1746][NOI2002]贪吃的九头龙
[codevs1746][NOI2002]贪吃的九头龙 试题描述 传说中的九头龙是一种特别贪吃的动物.虽然名字叫"九头龙",但这只是说它出生的时候有九个头,而在成长的过程中,它有时 ...
- 贪吃的九头龙(tyvj P1523)
T2 .tyvj P1523贪吃的九头龙 描述 传说中的九头龙是一种特别贪吃的动物.虽然名字叫“九头龙”,但这只是说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的总数会远大于 ...
- Vijos 1523 贪吃的九头龙 【树形DP】
贪吃的九头龙 背景 安徽省芜湖市第二十七中学测试题 NOI 2002 贪吃的九头龙(dragon) Description:OfficialData:OfficialProgram:Converted ...
- [NOI2002]贪吃的九头龙(树形dp)
[NOI2002]贪吃的九头龙 题目背景 传说中的九头龙是一种特别贪吃的动物.虽然名字叫"九头龙",但这只是 说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的 ...
- codevs贪吃的九头龙
传说中的九头龙是一种特别贪吃的动物.虽然名字叫“九头龙”,但这只是说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的总数会远大于九,当然也会有旧头因衰老而自己脱落.有一天,有M 个 ...
- codevs1746 贪吃的九头龙
[问题描述]传说中的九头龙是一种特别贪吃的动物.虽然名字叫“九头龙”,但这只是说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的总数会远大于九,当然也会有旧头因衰老而自己脱落.有一 ...
- vojis1523 NOI2002 贪吃的九头龙
描述 传说中的九头龙是一种特别贪吃的动物.虽然名字叫“九头龙”,但这只是说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的总数会远大于九,当然也会有旧头因衰老而自己脱落. 有一天, ...
- [NOI2002] 贪吃的九头龙
题目类型:树形DP 传送门:>Here< 题意:有一只九头龙要吃了一颗树,给出一棵\(N\)个节点的带边权的树.九头龙有\(M\)个头,其中一个是大头,大头要吃恰好\(K\)个节点,其他头 ...
随机推荐
- TC2.0中怎样调用汇编程序
转载于: TC2.0中怎样调用汇编程序 一.概述 TC是美国BORLAND 公司在IBM PC机上开发的一个高效.优化的C编译程序,它自带高效的全屏幕编辑程序,在集成开发环境下可支持编辑.编译.连接调 ...
- ComponentOne的C1Chart做饼状图怎么显示其百分比
问题:ComponentOne的C1Chart做饼状图怎么显示每部分的百分比 描述: 我用C1Chart做饼状图的时候,不知道怎么显示其百分比在对应的区域上,求解. 目前做的效果(附加代码所生成的饼状 ...
- BZOJ 1072 排列
Description 给一个数字串\(s\)和正整数\(d\), 统计\(s\)有多少种不同的排列能被\(d\)整除(可以有前导\(0\)).例如\(123434\)有\(90\)种排列能被\(2\ ...
- c# 函数相关练习
1.输入一个正整数,求1!+2!+3!+...+n! 2.输入姓名,年龄,工作单位 我叫**,今年**岁了,现在在****工作 要求,在Main函数中接收这三个值 传到函数中打印 3.写一 ...
- 设置Git提交时不用输入用户名和密码
在用git提交时代码至github上时每次都要输入用户名和密码,当提交操作较为频繁时非常不方便,可以按下文中的介绍,设置成提交时不用输入用户名和密码: 1.在当前库下,已经运行过 git remote ...
- (转载)PHP使用empty检查函数返回结果时报Fatal error: Can't use function return value in write context的问题
(转载)http://be-evil.org/post-153.html PHP开发时,当你使用empty检查一个函数返回的结果时会报错:Fatal error: Can't use function ...
- 数学(莫比乌斯函数):BZOJ 2440 完全平方数
Description 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些 数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数.然而 这丝毫不影响他对其他数的热爱. 这 ...
- Codeforces 716B Complete the Word【模拟】 (Codeforces Round #372 (Div. 2))
B. Complete the Word time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- Single Number III——LeetCode
Given an array of numbers nums, in which exactly two elements appear only once and all the other ele ...
- FreeMarker-TemplateLoader
Java中不乏优秀的模板引擎,Velocity,mvel,FreeMarker等.在构建框架的时候,通常可以拿来即用,但我们需要控制它.最近需要一个数据准备的框架,便选择了FreeMarker,Fre ...