按书上大的,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. pta l2-13(红色警报)

    题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805063963230208 题意:给n个顶点,m条边,问每次删 ...

  2. Docker学习之安装mysql

    1.从Docker检索mysql镜像 指令: docker search mysql 2.镜像下载 指令: docker pull mysql:5.7.19 3.查看本地镜像列表 指令: docker ...

  3. APP内的H5页面测试方法, 移动端的浏览器(例如UC浏览器)测试方法

    前言: 用appium做UI自动化,测试APP里面的H5和测试手机浏览器打开的H5的操作流程上是有所区别的.比如要测试APP内嵌的H5需要先操作appium启动APP,然后通过context切到web ...

  4. POJ3259 :Wormholes(SPFA判负环)

    POJ3259 :Wormholes 时间限制:2000MS 内存限制:65536KByte 64位IO格式:%I64d & %I64u 描述 While exploring his many ...

  5. 上海高校金马五校赛 F题:1 + 2 = 3?

    链接:https://www.nowcoder.com/acm/contest/91/F来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言26214 ...

  6. SSH和SSM的区别

    一怒成仙 博客园 首页 新随笔 联系 管理 订阅 随笔- 54  文章- 1  评论- 0    SSH(Struts,Spring,Hibernate)和SSM(SpringMVC,Spring,M ...

  7. Mac电脑Dock栏开启放大特效

    1 右击Dock栏空白处,选择启用放大 2 在Dock偏好设置中调整图标放大的倍数 3 滑动鼠标,查看放大效果

  8. sqlserver判断字段是否存在更改字段

    use naire go if COL_LENGTH('options','optionsGroup') is null begin--options为表名,optionsGroup为列名 alter ...

  9. Ubuntu防火墙配置

    转载自:http://blog.csdn.net/sumer0922/article/details/7485584Ubuntu11.04默认的是UFW(ufw 即uncomplicated fire ...

  10. :before与::before的区别

    相同点 都可以用来表示伪类对象,用来设置对象前的内容 :befor和::before写法是等效的  不同点 :befor是Css2的写法,::before是Css3的写法 :before的兼容性要比: ...