按书上大的,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. jenkins搭建自动化部署平台(svn+tomcat重启)

    原文链接:http://blog.csdn.net/zjs40/article/details/51818322 jenkins 自动化部署和集成代码的平台 可以将Git svn 上的代码 check ...

  2. goto,void,extern,sizeof分析

    goto: 程序的质量与goto出现的次数成反比,禁用 goto的副作用:破环了程序的结构化的顺序执行的过程,它有可能会跳过程序的应该执行的一些步骤. void: 修饰函数返回值和参数 c语言中没有定 ...

  3. Git之生成SSH公钥

    一 生成公钥 ssh-keygen -t rsa -C "michelangelo@qq.com" -t :密钥类型. -C :  注释.通常用作密钥的名字. 依次按三次回车:默认 ...

  4. iOS 组件化流程详解(git创建流程)

    [链接]组件化流程详解(一)https://www.jianshu.com/p/2deca619ff7e

  5. webpack(三)使用 babel-loader 转换 ES6代码

    查询各个 loader的使用,可以在官网上查询. https://www.npmjs.com (一)安装 babel-loader,babel-core.   使用命令 npm install --s ...

  6. DOS下的安全空间

    我们需要直接向一段内存中写入内容: 这段内存空间不应存放系统或其他程序的数据或代码,否则写入操作很可能引发错误: DOS方式下,一般情况,0:200~0:2ff空间中没有系统或其他程序的数据或代码; ...

  7. sqlserver数据库的物理存储格式和逻辑存储格式

    物理存储结构: 数据库文件在磁盘上的存储形式: 主数据文件:*.mdf.用来存储数据库的启动信息.存储部分或全部的数据.整个的数据库只能有一个主数据文件 辅助数据文件:*.ndf.用于存储主数据文件未 ...

  8. BCH/BSV coin split troubleshooting

    BCH/BSV coin split troubleshootingMark Lundeberg 2018 November 27ResourcesGuides:Locktime based spli ...

  9. angular 1.x 控制器之间互相传递参数

    我们要向前方看齐,基于js引用类型的对象就不记了,所以使用基于事件的方式: angular 中 $on,$emit,$boardcast来实现父控制器和子控制器互相通讯, 其中$on表示事件监听, $ ...

  10. ES6 Generator的应用场景

    一.基础知识 API文档 ES6 诞生以前,异步编程的方法,大概有下面四种. 回调函数 事件监听 发布/订阅 Promise 对象 Generator 函数将 JavaScript 异步编程带入了一个 ...