聚会的快乐

题目描述
你要组织一个由你公司的人参加的聚会。你希望聚会非常愉快,尽可能多地找些有趣的热闹。但是劝你不要同时邀请某个人和他的上司,因为这可能带来争吵。给定N个人(姓名,他幽默的系数,以及他上司的名字),编程找到能使幽默系数和最大的若干个人。
输入输出格式
输入格式:
第一行一个整数N(N<100)。接下来有N行,每一行描述一个人的信息,信息之间用空格隔开。姓名是长度不超过20的字符串,幽默系数是在0到100之间的整数。
输出格式:
所邀请的人最大的幽默系数和。
输入输出样例
输入样例#1:
5
BART 1 HOMER
HOMER 2 MONTGOMERY
MONTGOMERY 1 NOBODY
LISA 3 HOMER
SMITHERS 4 MONTGOMERY
输出样例#1:
8

题面

明显的树形DP

dp[i][0] 表示i这个点不选的最大值

dp[i][1] 表示i这个点选的最大值

转移:

如果i这个点选择,那么他的直系下属就不可以参加,

dp[i][0]+=dfs(to,0);

如果i这个点不选择选择,那么他的直系下属就可以参加也可以不参加

dp[i][1]+=max(dfs(to,0),dfs(to,1));

记忆化搜索,转移

 1 #include<bits/stdc++.h>
 2 #define ll long long
 3 #define DB double
 4 using namespace std;
 5 int n,dp[110][2],val[110],son[110],t[110][110],rt,ans;
 6 bool vis[110][110];
 7 string na[110],up[110];
 8 int dfs(int i,int j)
 9 {
10     if(vis[i][j]) return dp[i][j];
11     vis[i][j]=true;
12     if(i==0) return 0;
13     if(j==1)//这个人参加聚会
14     {
15         dp[i][j]=val[i];
16         for(int k=1;k<=son[i];++k) dp[i][j]+=dfs(t[i][k],0);
17     }
18     else//人不参加聚会
19     {
20         for(int k=1;k<=son[i];++k)
21         dp[i][j]+=max(dfs(t[i][k],0),dfs(t[i][k],1));
22     }
23     return dp[i][j];
24 }
25 int main()
26 {
27     scanf("%d",&n);
28     for(int i=1;i<=n;++i)
29      cin>>na[i]>>val[i]>>up[i];
30     for(int i=1;i<=n;++i)
31     {
32         bool fg=false;
33         for(int j=1;j<=n;++j)
34         {
35             if(i==j)continue;
36             if(na[j]==up[i])
37             {
38                 fg=true;
39                 t[j][++son[j]]=i;
40                 break;
41             }
42         }
43         if(!fg) rt=i;
44     }
45     ans=dfs(rt,0);
46     ans=max(ans,dfs(rt,1));
47     printf("%d\n",ans);
48     return 0;
49 }

原文地址:https://www.cnblogs.com/adelalove/p/8849220.html

时间: 2025-01-18 05:18:25

聚会的快乐的相关文章

树形动态规划 fjutoj-2392 聚会的快乐

聚会的快乐 TimeLimit:1000MS  MemoryLimit:128MB 64-bit integer IO format:%lld Problem Description 你要组织一个由你公司的人参加的聚会.你希望聚会非常愉快,尽可能多地找些有趣的热闹.但是劝你不要同时邀请某个人和他的上司,因为这可能带来争吵.给定N个人(姓名,他幽默的系数,以及他上司的名字),编程找到能使幽默系数和最大的若干个人. Input 第一行一个整数N(N<100).接下来有N行,每一行描述一个人的信息,信

【听课记录】17-7-11 动态规划 - 朱全民

此文转载时必须通知博主,并把原文链接及原作者放在正文醒目位置. ————————动态规划初步———————— 一.常见动态规划:求最优解.次优解:统计问题. 二.DP模型:线型- 一条直线.两条直线.多条直线(二维矩阵).树型- 明显能够构成一棵树.多叉树转二叉树:孩子兄弟表示法.图型- 以图为模型.基于连通性的状态压缩DP(哈密顿环).集合类型 三.DP概念:阶段.状态.决策.状态转移.最优化原理.无后效性原理. 四.步骤划分阶段—设置状态—状态转移方程—(优化决策) 五.例题分析 —————

做题单

错误 收藏了过多题目 QWQ P1383 高级打字机 P1270 “访问”美术馆 P1481 魔族密码 P1280 尼克的任务 P1271 聚会的快乐 P3631 [APIO2011]方格染色 P1243 排序集合 P2858 [USACO06FEB]奶牛零食Treats for the Cows P3146 [USACO16OPEN]248 P2890 [USACO07OPEN]便宜的回文Cheapest Palindrome P1896 [SCOI2005]互不侵犯 P3154 [CQOI2

我编程,我快乐——读书笔记(二)

我编程,我快乐--读书笔记(二) 第二章 在产品上投资 1. 我之所以说自己有天赋,是因为我发现自己在工作中不断学习,并且不断进步. 2. 只有向这件产品中投入心血.汗水.眼泪和资金,才能使它真正具有价值. 3. 要主动问,不要等着别人来告诉你.授人以鱼不如授人以渔. 4. 如果你想要雇佣某人来为你工作,你会希望这个人总是要受那些专家的支配吗?我不愿意.我想要的是一个能够自立的员工. 5. 与客户的互动式非常重要的,清楚地了解客户的要求比似懂非懂然后自己填写细节要好得多. 6. 学习行业是如何运

活得开心快乐,不再患得患失

1 几年前,我在一家电器公司上班,和许多刚入职场的人一样,对工作充满热情,出差加班从不抱怨. 有一次,总公司的陆经理来探亲,恰好有个外商也要来.主管问我和同事小何:你们俩看看,谁陪陆总,谁接待外商?我还没来得及表态,小何就抢先说:"我英语不好,还是我来陪陆总吧."主管暧昧地笑了笑.后来我才知道,小何毕业于外国语学院. 谁都清楚,和总公司的经理混个脸熟,多多少少都是有好处的.可我是个新人,没什么能争的.于是,我去机场接了外商,又用蹩脚的英语陪老外东走西逛了两天.窝火的是,那个老外还比较挑

史上最牛同学聚会通知书

亲爱的同学: 弹指一挥间,一晃毕业多年.曾记否,毕业前,泪眼挥手相送:现如今,毕业后,记忆俨然朦胧. 感慨万千,物是人非.环肥燕瘦者,如今为人妻为人母:英俊倜傥者,如今为人夫为人父.想目睹一下当初她(她)么?想必,风采不现,神韵依旧.轻候一声:你好么?不恨郎娶妾嫁,不怨造物弄人,只盼来生再遇.我愿,忍受五百年的风吹.五百年的日晒.五百年雨淋,只愿你从身旁走过.喝口孟婆汤,穿过奈河桥,三生石已满,写不下许多情缘. 毕业后,单纯.幼稚.迷茫.困惑.梦想,而后羽化.笑过,哭过:快乐过.痛苦过:爱过,迷

聚会~宵夜

没有出差的日子过的还是丰富些,约定的周六宵夜如期而至,组织者从老挝旅行回来,在下了飞机后冒着大雨就赶了过来,特地选在靠近我的位置,体贴又周到. 虽说在这里住了一段时间,但平时对宵夜少有关注,也很少零点以后还徘徊在街头,年轻时的生活方式随着这些年的工作变化而变化,年龄的增长也是因素之一,已经不习惯这么晚还吃一堆东西到肚子里去.这里的宵夜很有名,但我的理解仅停留在微信上的几张零星照片上. 通过微信发送实时地址,地点就选在南门口,长沙老城区,据说这里的宵夜也挺好.我们见面的时候时间已接近零点,马路上灯

bzoj-3170 3170: [Tjoi 2013]松鼠聚会(计算几何)

题目链接: 3170: [Tjoi 2013]松鼠聚会 Time Limit: 10 Sec  Memory Limit: 128 MB Description 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最短距离. Input 第一行给出数字N,表示有多少只小松鼠.0<=N<=10^5下面N行,每行给出x,y表示其家的坐标.-10^9<=x,y<=10^

n年的一次聚会

今日聚会有a,b,b1,c,d 五人一起吃饭. 先谈谈各自的变化吧. a 毕业之后,他爸给他买了一个京a的牌照,然后出印度留学,然后回到北京,现在算一个中层领导,不过比较忙,刚刚聚餐完毕就立马回去加班干活了. b毕业之后一人来到北京,开始北漂,在校时还专门参加了日语培训.北漂了3年,找到一个北京媳妇.今年5月份结婚,就是场上b1 c毕业之后在成都待了3个月,然后开始北漂,北漂一年后在成都商贷买房,2年后结婚,现在已经怀孕,现在正琢磨着未来的孩子在北京上学,购买学区房等等. d毕业之后在成都待了3