树形动规入门题

先放题面

题目描述

某大学有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

这是一道非常简单的树形动规入门题,思路也很简单

摘取题意可知,一个人不愿意与自己的直接上司同时参加舞会,也就是相当于一个人不能与自己直接下属及直接上司同时参加舞会,继续化简就是每个点不会与和自己直接相连的点同时被选中说白了就是

最大独立集问题

那么我们直接看代码说话咯

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<cctype>
  5. #define gc() getchar()
  6. #define ll long long
  7. #define maxn 6005
  8. using namespace std;
  9. inline ll read(){ //快读不多解释
  10. ll a=0;char p=gc();int f=0;
  11. while(!isdigit(p)){f|=(p=='-');p=gc();}
  12. while(isdigit(p)){a=(a<<3)+(a<<1)+(p^48);p=gc();}
  13. return f?-a:a;
  14. }
  15. struct ahaha{ //邻接表存边
  16. int to,next;
  17. }e[maxn*2];
  18. int n,head[maxn],sz,a[maxn];
  19. ll f[maxn][2]; //f[i][0]表示第i个点未被选中的最大值,f[i][1]表示第i个点被选中的最大值
  20. inline void add(int u,int v){ //添加边的操作
  21. e[sz].to=v;e[sz].next=head[u];head[u]=sz++;
  22. }
  23. void dfs(int u,int fa){ //核心深搜
  24. for(int i=head[u];~i;i=e[i].next){ //遍历这个点的所有儿子
  25. int v=e[i].to;if(v==fa)continue; //防止循环回去
  26. dfs(v,u);
  27. f[u][0]+=max(f[v][1],f[v][0]);
  28. f[u][1]+=f[v][0];
  29. }
  30. }
  31. int main(){memset(head,-1,sizeof head); //head数组置为-1方便判回操作
  32. n=read();
  33. for(int i=1;i<=n;++i){a[i]=read();f[i][1]=a[i];} //若一个点被选中,则至少加上它自己的“快乐指数”
  34. for(int i=1;i<=n;++i){
  35. int x=read(),y=read();
  36. add(x,y);add(y,x);
  37. }
  38. dfs(1,0); //以1为根节点(这道题并没有交代根节点,所以以1为根节点)
  39. printf("%lld",max(f[1][0],f[1][1]));
  40. return 0;
  41. }

洛谷 P1352 没有上司的舞会的更多相关文章

  1. 洛谷 p1352 没有上司的舞会 题解

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

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

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

  3. 洛谷P1352 没有上司的舞会 [2017年5月计划 清北学堂51精英班Day3]

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

  4. 洛谷 P1352 没有上司的舞会【树形DP】(经典)

    <题目链接> <转载于>>> > 题目描述: 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的 ...

  5. 洛谷 P1352 没有上司的舞会【树形DP/邻接链表+链式前向星】

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

  6. 洛谷P1352 没有上司的舞会

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

  7. 洛谷——P1352 没有上司的舞会

    https://www.luogu.org/problem/show?pid=1352#sub 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树, ...

  8. 洛谷P1352 没有上司的舞会题解

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

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

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

随机推荐

  1. Spring之HandlerInterceptor拦截器

    思维导图下载:https://pan.baidu.com/s/19z73Bs8MsHFAupga3Cr3Gg

  2. OpenStack入门篇(五)之KVM性能优化及IO缓存介绍

    1.KVM的性能优化,介绍CPU,内存,IO性能优化 KVM CPU-->qemu进行模拟ring 3-->用户应用 (用户态,用户空间)ring 0-->操作系统 (内核态,内核空 ...

  3. Python环境搭建和pycharm安装

    Python环境搭建和pycharm安装 本人安装环境为Windows10系统,下载的Python版本为3.4社区版本,可参考 1.下载Python3.4版本 官网:https://www.pytho ...

  4. 令自己的本地ip可以被外网访问

    https://www.ngrok.cc/_book/general/open.html

  5. python程序设计——面向对象程序设计:属性

    python 3.x 的属性 可以将属性设置为 可读,可修改,可删除 # 只读属性,不允许修改和删除 class Test: def __init__(self,value): self.__valu ...

  6. js判断PC端 移动端 并跳转到对应页面

    一.PC端跳转到移动端 html页面: <script>var webroot="/",catid="{$catid}",murl="m/ ...

  7. smartgit 过期

    进入到安装目录把Setting.xml 文件删除然后,再次打开就可以正常使用了.

  8. 亚马逊拟斥资15亿美元建航空货运中心 - Amazon to spend $1.49 bln on air cargo hub, fans talk of bigger ambitions - ReutersFebruary 1, 2017

    2月1日消息,亚马逊本周二宣布将在肯塔基州开建其第一个航空货运中心,以应对高速增长的航空货运需求.亚马逊预计,该项目将带来2000个工作岗位. 据悉,该项计划总投入约为15亿美元,亚马逊或可从当地政府 ...

  9. .net web 应用程序C#

    简介 开发环境:VS2015 ASP.NET:可以开发出几乎所有运行在Windows上的应用程序:.NET是一种架构,一种新的API:引入程序集代替DLL: ADO.NET:一组.NET组件提供对数据 ...

  10. 软工实践第八次作业(课堂实战)- 项目UML设计(第五组)

    本次作业博客 团队信息 队名:起床一起肝活队 原组长: 白晨曦(101) 原组员: 李麒 (123) 陈德斌(104) 何裕捷(214) 黄培鑫(217) 王焕仁(233) 林志华(128) 乐忠豪( ...