博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
没有上司的舞会 树形DP
阅读量:6881 次
发布时间:2019-06-27

本文共 566 字,大约阅读时间需要 1 分钟。

 

 

题意:有n个职员可以参加舞会,每个职员有一个欢乐值,职员之间就像一颗树,每个父节点都是子节点的上司,同时一个职员不可以他的直接上司一起参加,。现在选一些员工参加舞会,求参加员工的可能最大快乐值。

做法:设f[i][0]表示i代表的子树之下,i职员不参加的最大快乐值,f[i][1]表示i代表的子树之下,i职员参加的最大快乐值。则状态转移方程得

f[i][0]+=max(f[j][1],f[i][0])如果i不参加,那么他的每个儿子j可以选择参加或者不参加,累加每个儿子的较大的值。

f[i][1]+=f[j][0]如果i参加,那么它需要累加它每个儿子不参加时的最大快乐值。

然后就是从顶头上司根节点开始,深度优先遍历即可

#include
using namespace std;int f[1005][2];int val[1005];vector
v[1005];int ans;int vis[1005];void dp(int t){ f[t][0]=0; f[t][1]=val[t]; for(int i=0;i

 

转载于:https://www.cnblogs.com/dongdong25800/p/10834719.html

你可能感兴趣的文章
求1-n中各个数字每位上出现1的次数总和
查看>>
快速排序
查看>>
[Yii Framework] Error Handler for Modules
查看>>
struct变量存储
查看>>
春江花月夜
查看>>
HR-PD 中文数据无法抽取的问题
查看>>
在spring中集成webservice 框架 CXF
查看>>
模2运算的原理
查看>>
HANDLE
查看>>
我的MVVM框架 v3发布!
查看>>
Linux服务器部署系列之八—Sendmail篇 【邮件服务器】
查看>>
如果你是一条鱼
查看>>
一次Debug经历
查看>>
转下载豆瓣音乐小站歌曲
查看>>
php中转义html标签
查看>>
jQuery.extend 函数详解
查看>>
The Nature of Lisp
查看>>
chineking / WeiboCrawler / wiki / Home — Bitbucket
查看>>
Java用native2ascii命令做unicode编码转换
查看>>
POST jpeg upload with AFNetworking
查看>>