本Lowbee第一次写树形DP啊,弱...一个变量写错半天没看出来......

题目描述

某大学有N个职员,编号为1~N。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri,但是呢,如果某个职员的上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算,邀请哪些职员可以使快乐指数最大,求最大的快乐指数。

输入输出格式

输入格式:

第一行一个整数N。(1<=N<=6000)

接下来N行,第i+1行表示i号职员的快乐指数Ri。(-128<=Ri<=127)

接下来N-1行,每行输入一对整数L,K。表示K是L的直接上司。

最后一行输入0 0

输出格式:

输出最大的快乐指数。

输入输出样例

输入样例#1:
7
1
1
1
1
1
1
1
1 3
2 3
6 4
7 4
4 5
3 5
0 0
输出样例#1:

5
  这是一道非常水入门的题目,其实这些大佬们构成了一棵树,然而大佬们不愿意与其上司一起参加舞会因为会自卑比较任性...那么我们很容易想到以i作为根节点的子树的最大收益(容许我这么说把...)然后我们很容易发现在转移的时候会有问题,大佬上司不能和小弟下级一起出现啊!!!怎么办?很简单啊,多添一个状态表示其有没有参加不就得了?I  所以我们得到方程:dp[i][1]=Σ dp[j][0]+hp[i] (快乐指数...)dp[i][0]=Σ Max(dp[j][0],dp[j][1]) [j为i的儿子节点]  是不是很水?  但是Lowbee我的代码还是一塌糊涂...
#include<iostream>
#include<cstdio>
#include<cstring>
inline int read();
using namespace std;
#define maxn 6010
struct edge{
    int to;
    int next;
}e[maxn*];
],hp[maxn],fa[maxn];
,n;
//特殊嗜好???
namespace lys{
    //不解释了把...
    int Max(int x,int y){
        return x>y?x:y;
    }
    //邻接表存图
    void add(int x,int y){
        e[cnt].to=x;e[cnt].next=pre[y];pre[y]=cnt++;
        fa[x]=y;
    }
    //dfs dp主体...
    void dfs(int x){
        int i,v;
        //初始化...
        dp[x][]=hp[x];
        for(i=pre[x];~i;i=e[i].next){
            v=e[i].to;
            dfs(v);
            //方程转移
            dp[x][]+=Max(dp[v][],dp[v][]);
            dp[x][]+=dp[v][];
        }
    }
    int ans;
    int main(){
        n=read();
        int i,x,y;
        ;i<=n;i++) hp[i]=read();
        memset(pre,-,sizeof pre);
        memset(fa,-,sizeof fa);
        while(true){
            x=read(); y=read();
            &&y==) break ;
            add(x,y);
        }
        ;i<=n;i++){
            ){
                //蒟蒻搜索
                dfs(i);
                printf(],dp[i][]));
                ;
            }
        }
    }
}
int main(){
    lys::main();
    ;
}
//Lowbee的垃圾快读
inline int read(){
    ,f=;
    char c=getchar();
    '){
        if(c=='-')
            f=-;
        c=getchar();
    }
    '){
        k=k*+c-';
        c=getchar();
    }
    return k*f;
}

												

[luogu]P1352 没有上司的舞会[树形DP]的更多相关文章

  1. 洛谷P1352 没有上司的舞会——树形DP

    第一次自己写树形DP的题,发个博客纪念`- 题目来源:P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结 ...

  2. P1352 没有上司的舞会——树形DP入门

    P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员 ...

  3. P1352 没有上司的舞会&&树形DP入门

    https://www.luogu.com.cn/problem/P1352 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的 ...

  4. 洛谷 P1352 没有上司的舞会 树形DP板子

    luogu传送门 题目描述: 某大学有n个职员,编号为1~n. 他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司. 现在有个周年庆宴会,宴会每邀请来一个职员都会 ...

  5. P1352 没有上司的舞会[树形dp]

    题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri, ...

  6. 洛谷 P1352 没有上司的舞会(树形 DP)

    题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri, ...

  7. luogu P1352 没有上司的舞会 x

    P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.现在有个周年庆宴会,宴会每邀请来一个职员 ...

  8. 『没有上司的舞会 树形DP』

    树形DP入门 有些时候,我们需要在树形结构上进行动态规划来求解最优解. 例如,给定一颗\(N\)个节点的树(通常是无根树,即有\(N-1\)条无向边),我们可以选择任意节点作为根节点从而定义出每一颗子 ...

  9. CodeVS1380 没有上司的舞会 [树形DP]

    题目传送门 没有上司的舞会 题目描述 Description Ural大学有N个职员,编号为1~N.他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.每个职员有一个 ...

随机推荐

  1. sublime text 快捷收集

    1. 文件快速导航: 这是sublime上面很好用的功能之一,ctrl+p可以调出窗口,菜单上的解释是gotoanythings ,确实如其所言,调出窗口后,直接输入关键字,可以在已打开的项目文件夹中 ...

  2. response.getWriter().write()产生乱码

    Struts1中通过action, return到页面的时候,如果代码中使用到response.getWriter().write(),那么有可能jsp页面中汉字会变成乱码.百度上有人说改为respo ...

  3. MATLAB仿真中连续和离散的控制器有何区别?

    matlab系统同时提供连续和离散的控制器和对象的目的是:在降低用户使用复杂程度的同时提高仿真精度.仿真速度和应用的广泛性. 仿真步长和求解精度的概念对于理解这个问题至关重要. 首先是步长,步长和求解 ...

  4. TestNG+ExtentReports生成超漂亮的测试报告

    一个优雅.漂亮的测试报告,能够给我们的测试工作带来不少的加分,而报告的模版实在是让我们这些技术人员头疼的问题,设计的实在是没有什么美感. 那么今天就给大家分享一个自动化测试中,一个超漂亮的测试报告模版 ...

  5. sodu 命令场景分析

    摘自:http://www.cnblogs.com/hazir/p/sudo_command.html sudo 命令情景分析   Linux 下使用 sudo 命令,可以让普通用户也能执行一些或者全 ...

  6. js实现htmlToWordDemo

    之前由于工作需要,需要实现将html内的一部分内容直接转为word和pdf的功能.就研究了一下方法并且实现了两个demo.今天先说一下html to word(才疏学浅,仅供交流,如有错误,请指出). ...

  7. (原创)用JAX-WS+Spring实现简单soap规范的webservice

    转载请注明出处:http://www.cnblogs.com/Starshot/p/7050084.html Soap即简单对象访问协议,也可理解为一种用于程序之间通讯的规范,它主要基于XML和htt ...

  8. 从Html5直播到互动直播,看直播协议的选择

    目前,国内主流的直播协议有HLS.RTMP.HTTP FLV,适用于不同的直播场景. 一.HLS.RTMP与HTTP FLV 1.HLS HLS 全称是 HTTP Live Streaming, 是一 ...

  9. java——国际化详解

    深入理解Java国际化 假设我们正在开发一个支持多国语言的Web应用程序,要求系统能够根据客户端的系统的语言类型返回对应的界面:英文的操作系统返回英文界面,而中文的操作系统则返回中文界面--这便是典型 ...

  10. JAVAEE——spring02:使用注解配置spring、sts插件、junit整合测试和aop演示

    一.使用注解配置spring 1.步骤 1.1 导包4+2+spring-aop 1.2 为主配置文件引入新的命名空间(约束) 1.3 开启使用注解代替配置文件 1.4 在类中使用注解完成配置 2.将 ...