zoukankan      html  css  js  c++  java
  • P2015 二叉苹果树

    辣鸡题面

    这题目确实是比较经典的树形dp,里面确实还是有很多需要理解的地方

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 const int N=1005;
     4 
     5 int n,q;
     6 int dis[N][N],l[N],r[N],a[N],f[N][N];
     7 
     8 int get(){
     9     char zy=getchar();
    10     int z=1,y=0;
    11     while(zy>'9'||zy<'0'){
    12         if(zy=='-')z=-1;
    13         zy=getchar();
    14     }
    15     while(zy>='0'&&zy<='9'){
    16         y=y*10+zy-'0';
    17         zy=getchar();
    18     }
    19     return z*y;
    20 }
    21 
    22 void build(int u){
    23     for(int i=1;i<=n;i++){
    24         if(dis[u][i]>=0){
    25             if(!l[u]){
    26                 a[i]=dis[u][i];
    27                 dis[u][i]=dis[i][u]=-1;
    28                 l[u]=i;
    29                 build(i);
    30                 continue;
    31             }
    32             a[i]=dis[u][i];
    33             dis[u][i]=dis[i][u]=-1;
    34             r[u]=i;
    35             build(i);
    36             break;
    37         }
    38     }
    39 }
    40 
    41 int Max(int a,int b){return a>b?a:b;}
    42 
    43 int tdp(int u,int t){
    44     if(t==0) return 0;
    45     if(l[u]==0&&r[u]==0)return a[u];
    46     if(f[u][t])return f[u][t];
    47     for(int i=0;i<t;i++){
    48         f[u][t]=Max(f[u][t],tdp(l[u],i)+tdp(r[u],t-i-1)+a[u]);
    49     }
    50     return f[u][t];
    51 }
    52 
    53 int main(){
    54     n=get();q=get()+1;
    55     for(int i=1;i<=n;i++){
    56         for(int j=1;j<=n;j++){
    57             dis[i][j]=-1;
    58         }
    59     }
    60     for(int i=1;i<n;i++){
    61         int u=get(),v=get();
    62         dis[u][v]=dis[v][u]=get();
    63     }
    64     build(1);
    65     printf("%d
    ",tdp(1,q));
    66     return 0;
    67 }
  • 相关阅读:
    ajax
    vue 思維導圖
    python项目_log日志的使用
    mysql数据库_serialisers
    常见的时间复杂度及其增长速度比较
    C++中的sort()函数
    用C++实现输入三个整数,中间用逗号隔开
    python——递归函数
    python——函数
    python——可变对象和不可变对象
  • 原文地址:https://www.cnblogs.com/hahaha2124652975/p/11243493.html
Copyright © 2011-2022 走看看