按书上大的,dfs还需加强

 #include <bits/stdc++.h>
 #define read read()
 using namespace std;

 int read
 {
     ; char ch = getchar();
      || ch > ) ch = getchar();
     && ch <= ) { x =  * x + ch - ; ch = getchar();}
     return x;
 }

 ;

 int n,q;
 int head[N],size;
 bool vis[N];
 int l[N],r[N],a[N],tot[N];
 int f[N][N];

 struct edge{
     int v,nxt,w;
 }e[N<<];

 void add(int u,int v,int w)
 {
     e[++size].v = v;
     e[size].w = w;
     e[size].nxt = head[u];
     head[u] = size;
 }

 void readdata()
 {
     n = read; q = read; q++;
     int u,v,w;
     ; i < n; i++)
     {
         u = read; v = read; w = read;
         add(u,v,w);
         add(v,u,w);
     }
 }

 void maketree(int u)
 {
     for(int i = head[u]; i ; i = e[i].nxt)
     {
         int v = e[i].v;
         if(vis[v]) continue;
         a[v] = e[i].w;
         vis[v] = ;
         l[u] = v;
         maketree(v);
         break;
     }
     for(int i = head[u]; i ; i = e[i].nxt)
     {
         int v = e[i].v;
         if(vis[v]) continue;
         a[v] = e[i].w;
         vis[v] = ;
         r[u] = v;
         maketree(v);
         break;
     }

 }

 int dp(int i,int j)
 {
     ;
     if(!l[i] && !r[i] )return a[i];
     if(f[i][j]) return f[i][j];
         ; k < j; k++)
             f[i][j] = max(f[i][j], dp(l[i],k) + dp(r[i],j -  - k) + a[i]);
     return f[i][j];
 }

 void work()
 {
     vis[] = ;
     maketree();
     /*for(int i = 1; i <= n; i++)
     {
         printf("%d %d \n",l[i],r[i]);
     }*/
     //for(int i = 1; i <= n; i++) printf("%d ",a[i]);
     printf(,q));
 }

 int main()
 {
 //    freopen("apple tree.in","r",stdin);
     readdata();
     work();
     ;
 }

MZOJ 1134: 二叉苹果树的更多相关文章

  1. CJOJ 1976 二叉苹果树 / URAL 1018 Binary Apple Tree(树型动态规划)

    CJOJ 1976 二叉苹果树 / URAL 1018 Binary Apple Tree(树型动态规划) Description 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的 ...

  2. Luogu_2015 二叉苹果树

    题目链接 SB 裸题……就是想随便挂在这里……同样的题还有 Luogu_2014 选课. Luogu_2015 二叉苹果树 #include <queue> #include <cs ...

  3. 二叉苹果树|codevs5565|luoguP2015|树形DP|Elena

    二叉苹果树 题目描述 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1. 我们用一根树枝两端连接的 ...

  4. P2015 二叉苹果树

    P2015 二叉苹果树 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1. 我们用一根树枝两端连接 ...

  5. Loj10153 二叉苹果树

    题目描述 有一棵二叉苹果树,如果数字有分叉,一定是分两叉,即没有只有一个儿子的节点.这棵树共 NN 个节点,标号 11 至 NN,树根编号一定为 11. 我们用一根树枝两端连接的节点编号描述一根树枝的 ...

  6. 洛谷 P2015 二叉苹果树 (树上背包)

    洛谷 P2015 二叉苹果树 (树上背包) 一道树形DP,本来因为是二叉,其实不需要用树上背包来干(其实即使是多叉也可以多叉转二叉),但是最近都刷树上背包的题,所以用了树上背包. 首先,定义状态\(d ...

  7. 洛谷p2015二叉苹果树&yzoj1856多叉苹果树题解

    二叉 多叉 有一棵苹果树,如果树枝有分叉,可以是分多叉,分叉数k>=0(就是说儿子的结点数大于等于0)这棵树共有N个结点(叶子点或者树枝分叉点),编号为1~N,树根编号一定是1.我们用一根树枝两 ...

  8. P2015 二叉苹果树,树形dp

    P2015 二叉苹果树 题目大意:有一棵二叉树性质的苹果树,每一根树枝上都有着一些苹果,现在要去掉一些树枝,只留下q根树枝,要求保留最多的苹果数(去掉树枝后不一定是二叉树) 思路:一开始就很直接的想到 ...

  9. [Luogu2015]二叉苹果树(树形dp)

    [Luogu2015] 二叉苹果树 题目描述 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1. ...

随机推荐

  1. Zabbix配置优化

    1.zabbix开启中文语言zabbix是一个多语言监控系统,默认使用英文并且也支持中文语言,详见<zabbix汉化方法>,但是安装zabbix里面看不到中文语言.请往下看: ![](ht ...

  2. css3动画:执行前不显示,执行后显示

    今天做一个轮播,轮播图上使用animation.需求是当滚动到当前图片时,图片中的div从无到有逐渐显示, 遇到的问题是:页面刷新时,此图片上的div可以从无到有,但第二次滚动到此图片时,总是先显示一 ...

  3. jQuery 与js判断是否单选复选选中

    js判断复选:这段代码昨天网上查看的资料没保存出处,抱歉 var obj=document.getElementsByName("diseaseSet"); //选择所有name= ...

  4. 使用HttpClient 传送form 表单的请求

    在项目中用到了,需要使用HttpClient 进行模拟表单传送form 表单的需求,在平常的项目中,大概都是传送json串的样式需求,但是如何才能给对应的服务器传送一个form 表单呢? 这就需要了N ...

  5. java_2变量和运算符

    1.变量 存储数据的容器. 2.变量创建的3要素 数据类型 变量名 = 变量值: 如int  a = 10; 3.数据类型的自动转化 当小范围变量向大范围变量转化的时候,会发生这种情况.如int类型变 ...

  6. Nginx 做代理服务器时浏览器加载大文件失败 ERR_CONTENT_LENGTH_MISMATCH 的解决方案

    此文章仅作为本人的笔记,文章转载自  http://blog.csdn.net/defonds/article/details/46042809 Nginx 做反向代理,后端是 tomcat,chro ...

  7. Head First Servlets & JSP 学习笔记 第三章 —— MVC迷你教程

    临渊羡鱼,不如退而结网!是时候动手搞事情了! 我们的四大步骤: ①分析用户的视图(也就是浏览器要显示的东西),以及高层体系结构: (这个就是所谓的前端吧?用JSP?JSP可以当成Html来用吧?高层体 ...

  8. Excel中的常用功能

    Excel 是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理.统计分析和辅助决策操作,广泛地应用于管理.统计财经.金融等众多领域. Excel删除公式保留数据 1.简单举例一个简单的公 ...

  9. blockchain good article

    https://medium.com/programmers-blockchain/create-simple-blockchain-java-tutorial-from-scratch-6eeed3 ...

  10. 9.4-9.19 h5日记总结

    总结: 1.标签 (1)单.双标签 (2)块级.行级标签 (3)标签的属性 2.CSS (1)选择器 *.id.class.标签.后代.子代.并集.交集.伪类.结构 (2)层叠性,即选择器权重的计算 ...