/*
状态定义的没错 就是考试的时候傻啦吧唧的转移左右孩子
其实之转移父亲就简单多了 不用考虑那么多
还有就是偷懒没有把谁有没有找过这个信息转过去
而是搞了个全局变量…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 贪吃的九头龙的更多相关文章

  1. Vijos1523贪吃的九头龙【树形DP】

    贪吃的九头龙 传说中的九头龙是一种特别贪吃的动物.虽然名字叫"九头龙",但这只是说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的总数会远大于九,当然也会有旧头 ...

  2. [codevs1746][NOI2002]贪吃的九头龙

    [codevs1746][NOI2002]贪吃的九头龙 试题描述 传说中的九头龙是一种特别贪吃的动物.虽然名字叫"九头龙",但这只是说它出生的时候有九个头,而在成长的过程中,它有时 ...

  3. 贪吃的九头龙(tyvj P1523)

    T2 .tyvj   P1523贪吃的九头龙 描述 传说中的九头龙是一种特别贪吃的动物.虽然名字叫“九头龙”,但这只是说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的总数会远大于 ...

  4. Vijos 1523 贪吃的九头龙 【树形DP】

    贪吃的九头龙 背景 安徽省芜湖市第二十七中学测试题 NOI 2002 贪吃的九头龙(dragon) Description:OfficialData:OfficialProgram:Converted ...

  5. [NOI2002]贪吃的九头龙(树形dp)

    [NOI2002]贪吃的九头龙 题目背景 传说中的九头龙是一种特别贪吃的动物.虽然名字叫"九头龙",但这只是 说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的 ...

  6. codevs贪吃的九头龙

    传说中的九头龙是一种特别贪吃的动物.虽然名字叫“九头龙”,但这只是说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的总数会远大于九,当然也会有旧头因衰老而自己脱落.有一天,有M 个 ...

  7. codevs1746 贪吃的九头龙

    [问题描述]传说中的九头龙是一种特别贪吃的动物.虽然名字叫“九头龙”,但这只是说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的总数会远大于九,当然也会有旧头因衰老而自己脱落.有一 ...

  8. vojis1523 NOI2002 贪吃的九头龙

    描述 传说中的九头龙是一种特别贪吃的动物.虽然名字叫“九头龙”,但这只是说它出生的时候有九个头,而在成长的过程中,它有时会长出很多的新头,头的总数会远大于九,当然也会有旧头因衰老而自己脱落. 有一天, ...

  9. [NOI2002] 贪吃的九头龙

    题目类型:树形DP 传送门:>Here< 题意:有一只九头龙要吃了一颗树,给出一棵\(N\)个节点的带边权的树.九头龙有\(M\)个头,其中一个是大头,大头要吃恰好\(K\)个节点,其他头 ...

随机推荐

  1. django访问sqlserver中的坑

    首先不用说先安装django-sqlserver    pip install django-sqlserver 然后在settings.py中修改'ENGINE': 'sqlserver_ado', ...

  2. HTML部分标签的含义

    标签的用途:我们学习网页制作时,常常会听到一个词,语义化.那么什么叫做语义化呢,说的通俗点就是:明白每个标签的用途(在什么情况下使用此标签合理)比如,网页上的文章的标题就可以用标题标签,网页上的各个栏 ...

  3. App的token机制

    这只是网上看来的后期可能还会修改. 理论版的描述如下: (1) 服务器接收到app发送的用户名和密码后,验证用户名和密码是否正确. 如果错误则返回错误信息. 如果验证正确,生成一个随机的不重复的tok ...

  4. 关于git服务器的搭建

    Git 服务器可搭建在多个系统平台上. 本篇以 Windows 和 Ubuntu 系统为例,简单介绍 Git 服务器的构建. 最后使用 eclipse 的 egit 插件和 git clone 这两种 ...

  5. [BZOJ 1070] [SCOI2007] 修车 【费用流】

    题目链接:BZOJ - 1070 题目分析 首先想到拆点,把每个技术人员拆成 n 个点,从某个技术人员拆出的第 i 个点,向某辆车连边,表示这是这个技术人员修的倒数第 i 辆车.那么这一次修车对整个答 ...

  6. ios入门之c语言篇——基本函数——1——随机数生成

    1.随机数函数 参数返回值解析: 参数: a:int,数字范围最小值: b:int,数字范围最大值: 返回值: 1:闰年: 0:非闰年: 备注: a-b的绝对值不能超过int的最大值(65535); ...

  7. Spring基础介绍

    Spring属于轻量级还是重量级框架?   这需针对使用Spring的功能而言,比如我们常使用其核心服务整合SSH,这样则为轻量级. 如果使用其大部分服务则可以理解为重量级.   普通JAVA项目环境 ...

  8. Unity NGUI制作scroll view

    unity版本:4.5 NGUI版本:3.6.5 参考链接:http://blog.csdn.net/monzart7an/article/details/23878505,作者:CSDN 冬菊子   ...

  9. datagridview bindingsource

    调用bindindsource的ResetBindings() 方法

  10. kafka在zookeeper中的存储结构

    参考site:http://kafka.apache.org/documentation.html#impl_zookeeper 1.zookeeper客户端相关命令 在确保zookeeper服务启动 ...