周年纪念晚会


试题描述

Ural 州立大学的校长正在筹备学校的 80 周年纪念聚会。由于学校的职员有不同的职务级别,可以构成一棵以校长为根的人事关系树。每个资源都有一个唯一的整数编号,从 1 到 N 编号,且对应一个参加聚会所获得的欢乐度。为使每个职员都感到快乐,校长设法使每个职员和其直接上司不会同时参加聚会。你的任务是设计一份参加聚会者的名单,使总欢乐度最高。


输入

第一行是一个整数 N;接下来 N 行对应 N 个职员的欢乐度,第 i 行的一个整数为第 i 个职员的欢乐度 pi? ;接着是学校的人事关系树,每一行格式为 L K ,表示第 K 个职员是第 L 个职员的直接上司,输入以 0 0 结束。

输出

输出参加聚会者获得的最大欢乐度。

输入示例

7
1
1
1
1
1
1
1
1 3
2 3
6 4
7 4
4 5
3 5
0 0

输出示例

5

其他说明

数据范围:对于 100% 的数据,1 <= N <= 6000,−128 <= pi <= 127 。

看注释

#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<cmath>
using namespace std;
inline int rd()
{
    int x=0,f=1;
    char ch=getchar();
    for(;!isdigit(ch);ch=getchar()) if(ch==‘-‘) f=-1;
    for(;isdigit(ch);ch=getchar()) x=x*10+ch-‘0‘;
    return x*f;
}
inline void write(int x)
{
    if(x<0) putchar(‘-‘),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+‘0‘);
    return ;
}
int n;
int head[100006],to[100006],nxt[100006];
int total=0;
int dis[100006];
void add(int x,int y)
{
    total++;
    to[total]=y;
    nxt[total]=head[x];
    head[x]=total;
    return ;
}
int f[100006][3];
void dfs(int x,int la)
{
    /*
        状态一共只有两种,分别是去 f[x][1]   或不去   f[x][0]
    */
    f[x][1]=dis[x];
    for(int e=head[x];e;e=nxt[e])
    {
        int h=to[e];
        if(h!=la)
        {
            dfs(h,x);
            /*
                一定是+=   因为子树有很多,而且结果是累加的
            */
            f[x][0]+=max(f[h][0],f[h][1]);//因为没有规定上司不去下属就一定去,所以要在两个值里取最大的
            f[x][1]+=f[h][0];
        }
    }
    return ;
}
int book[100006];
int main()
{
    /*
        上来第一眼,树形DP裸题
    */
    memset(book,0,sizeof(book));
    n=rd();
    for(int i=1;i<=n;i++) dis[i]=rd();
    while(1)
    {
        int x,y;
        x=rd();
        y=rd();
        if(x==0&&y==0) break;
        add(y,x);//单向存边,因为上次不会因为下属去就不开心
        book[x]=1;
    }
    int root=1;//选择一个没有上司的作为根节点,但看别人没写也过了 ???
    while(book[root]) root++;
    dfs(root,0);
    printf("%d",max(f[root][0],f[root][1]));//在上司去和不去中取最大值   坑啊!!
    return 0;
}

最后喜欢的话不如来推荐,评论,关注三连。

不喜欢的话也昧着良心推荐一下吧!!!!

原文地址:https://www.cnblogs.com/WWHHTT/p/9505068.html

时间: 2024-10-21 08:36:17

周年纪念晚会的相关文章

膝盖中了一箭之康复篇-两周年纪念

右膝盖前十字韧带在2014年12月份的一次踢球中不小心弄断.2015年5月份才确诊.2015年的7月1日做了十字韧带重建术.到现在刚好是术后两年. 术后一年的纪念文章在这里:膝盖中了一箭之康复篇-一周年纪念. 整个康复历程的文章在这里:https://www.google.com.hk/search?safe=active&q=site%3Awww.huangbowen.net+ACL&oq=site%3Awww.huangbowen.net+ACL 这一年总的基调就是稳步前进.右膝盖已经

【μ&#39;sic forever???】μ&#39;s Final Love Live周年纪念

一.正文 "切なくて时をまきもどしてみるかい?No no no--いまが最高!" 转眼就是一周年了,其实fl后入坑的我在这里怀念显得有些无病呻吟.但我也有想说的话,说给重要的人听. "ほのかな予感から始まり",是她们,将无人问津的434变成了9.6万,让毫不起眼的1023化作了淹没数十万人的橙色海洋.六年间,她们从Oricon周榜164位,一步一步地登上了榜首:她们的观众,从最开始的可怜的1700人,增长到填满东京巨蛋和全球251个转播场的数十万人.超过10万张的单

线性代数 专场 暨 一周年纪念博客

前言 正好今天学习OI一整年,发篇博客纪念纪念. 听说联赛现在全国排名?那完了,一年OI一场空. 记得去年这个时候刚学OI,跟那些初中就开始学的大佬听课,第一节他们就讲2-sat,第二节就是线性代数. 我的内心是 然后,我就自闭了一个月. 如今又来看这些玄学玩意儿. 先列一下知识点(显得我更像是抄课件了呢) 线性基  高斯消元   行列式(主要是矩阵树定理)  矩阵的幂(邻接矩阵.矩阵加速递推) (以后可能会写总结吧,咕,我在) 序 还记得上一个专场是什么吗? 打表找规律,乱搞出奇迹,我对拍了1

膝盖中了一箭之康复篇-一周年纪念

右膝盖前十字韧带在2014年12月份的一次常规踢球中不小心弄断.2015年5月份才确诊.随后2个月后的7月1日做了十字韧带重建术.到现在刚好是术后一年了. 总体来说恢复的情况我还比较满意.虽然两条腿的肌肉还不是很平衡,甚至在下雨天的时候右膝还有点隐隐作痛.但是好在我还可以继续运动,比如跑步.踢球.打球等.虽然不能再像以前那么勇猛. 先盘点一下6月份的情况. 6月份跑步出勤5次,总跑量52.75公里.其中包括两次半程马拉松,还有一次9公里的越野跑.这个9公里的越野跑是参加赵公山的登山赛.上行4.5

信息学奥赛一本通 5.2 树形动态规划

题解在代码中 二叉苹果树[loj 10153] /* 若要留q条边便是要留q+1个点 所以记忆化搜索 dp[pos][ans]=max(dp[pos][ans],dp[l[pos]][k]+dp[r[pos]][ans-k-1]+a[pos]) 0<=k<=ans-1 */ #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<c

新年晚会时间不“打架”!四大卫视节目单曝光d

[环球时报驻朝鲜.韩国.日本特派特约记者 莽九晨 济冬 蓝雅歌]朝鲜最高领导人金正恩1日发表新年贺词时提到"洲际弹道导弹试验发射准备工作进入最终阶段",这迅速引起美日韩三国高度警惕,并被解读为"朝鲜或在近期试射洲际导弹". 警方对此的态度则截然不同."我们必须细心地收集证据,让他们接受应有的惩罚."警方认为,这些乞丐利用人们的善心和慷慨,应该接受应有的惩罚.2011年一年,警方逮捕了657名乞丐,这其中一半乞丐都是在斋月期间被抓获的. 外国人技能

Dataland 迪兰 RX 580 X-Serial 18周年纪念版 显卡使用感受

先说说我为啥要换卡,本人原先用影驰GTX750,还是14年的时候,那时候也就玩玩CF啥的,750足够用.后来换了蓝宝石RX 580超白金,趁着挖矿火热给卖了用回750,小赚了一笔,现在矿难过了这么久,所以我又准备再买一张卡用一下. 这次买卡定位在2K左右,因为比较喜欢白色所以定位在影驰GTX 1060名人堂和迪兰RX 580 X-Serial 18周年纪念款之间,最终权衡了一下外观,还是比较喜欢迪兰RX 580 X-Serial 18周年纪念款,所以就买了. 开箱 这次18周年纪念款的包装跟往常

应该学的沟通术

应该学的沟通术 第1节:前言成败说出来,机遇听出来 古代有一位国王,一天晚上做了一个梦,梦见自己满嘴的牙都掉了.于是,他就找了两位解梦的人.国王问他们:“为什么我会梦见自己满口的牙全掉了呢?”第一个解梦的人就说:“皇上,梦的意思是,在你所有的亲属都死去以后,你才能死,一个都不剩.”皇上一听,龙颜大怒,杖打了他一百大棍.第二个解梦人说:“至高无上的皇上,梦的意思是,您将是您所有亲属当中最长寿的一位呀!”皇上听了很高兴,便拿出了一百枚金币,赏给了第二位解梦的人. 同样的事情,同样的内容,为什么一个会

特朗普幕僚妄谈“川蔡门”:“不在乎羞辱中国,去他们的”cy

4月23日,中国驻日大使程永华来到余震未消的熊本地震灾区,看望了当地华侨华人和留学人员.程永华会晤了熊本县知事蒲岛郁夫,转交了在日中资机构和华侨华人募集的1800万日元赈灾捐款.中国驻福冈总领事李天然也转交了熊本的友好省县广西政府捐赠的200万元人民币.熊本政府感谢来自中方"温暖人心的高额支援金",再次感受到两国深厚的连带关系.囚徒贸易 在东京期间,代表团先后拜访了东京华侨总会.全日本华侨华人联合会.东京华助中心以及日本上海同乡会,并参加了全日本中国人博士协会成立20周年暨中国人留学日