[洛谷1271] 聚会的快乐

来源:互联网 发布:java版本积分商城 编辑:程序博客网 时间:2024/04/30 02:51

题目描述

你要组织一个由你公司的人参加的聚会。你希望聚会非常愉快,尽可能多地找些有趣的热闹。但是劝你不要同时邀请某个人和他的上司,因为这可能带来争吵。给定N个人(姓名,他幽默的系数,以及他上司的名字),编程找到能使幽默系数和最大的若干个人。


输入格式

第一行一个整数N(N<100)。接下来有N行,每一行描述一个人的信息,信息之间用空格隔开。姓名是长度不超过20的字符串,幽默系数是在0到100之间的整数。


输出格式

所邀请的人最大的幽默系数和。


样例数据

样例输入

5
BART 1 HOMER
HOMER 2 MONTGOMERY
MONTGOMERY 1 NOBODY
LISA 3 HOMER
SMITHERS 4 MONTGOMERY

样例输出

8


说明

洛谷第四组数据有错,其中有重名情况,WA的不用理他。


题目分析

类似[Ural 1039] 没有上司的晚会
用map处理人的名字,Trie树也可以


源代码

#include<algorithm>#include<iostream>#include<iomanip>#include<cstring>#include<cstdlib>#include<vector>#include<cstdio>#include<cmath>#include<queue>#include<map>using namespace std;inline const long long Get_Int() {    long long num=0,bj=1;    char x=getchar();    while(x<'0'||x>'9') {        if(x=='-')bj=-1;        x=getchar();    }    while(x>='0'&&x<='9') {        num=num*10+x-'0';        x=getchar();    }    return num*bj;}map<string,long long>M;struct Edge {    int to,next;} Edge[50005];string Name[50005],Father[50005];long long n,cnt=0,Head[50005],f[50005][5],vst[50005],Joy[50005],root;void AddEdge(long long x,long long y) {    cnt++;    Edge[cnt].to=y;    Edge[cnt].next=Head[x];    Head[x]=cnt;}void TreeDp(long long root) {    f[root][0]=0;    f[root][1]=Joy[root];    for(int i=Head[root]; i; i=Edge[i].next) {        int Next=Edge[i].to;        TreeDp(Next);        f[root][0]=max(f[root][0],max(f[root][0]+f[Next][1],f[root][0]+f[Next][0]));        f[root][1]=max(f[root][1],f[Next][0]+f[root][1]);    }}int main() {    ios::sync_with_stdio(false);    cin>>n;    for(int i=1; i<=n; i++) {        cin>>Name[i]>>Joy[i]>>Father[i];        M[Name[i]]=i;    }    for(int i=1; i<=n; i++) {        if(Father[i]=="NOBODY")continue;        AddEdge(M[Father[i]],M[Name[i]]);        vst[M[Name[i]]]=1;    }    for(int i=1; i<=n; i++)if(!vst[i])root=i;    TreeDp(root);    printf("%lld\n",max(f[root][0],f[root][1]));    return 0;}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 鱼身上有红斑像出血了怎么办 草鱼身上有红斑像出血了怎么办 宝宝屁眼红的破皮了怎么办 孩子身上起红疙瘩很痒怎么办 久而不射,但软了怎么办 盆底综合肌力1级怎么办 头发掉的厉害怎么办吃什么好 给蜂蛰了肿了痒怎么办 小米手环2没电了怎么办 小米手环2不亮了怎么办 红米3s无限重启怎么办 乐视手机1s卡顿怎么办 老公出轨了怎么办你会选择离婚吗 c盘和d盘换换了怎么办 晚上2点到3点醒怎么办 红米3s变砖了怎么办 6s锁屏密码忘了怎么办 怀孕9个月了胃疼怎么办 怀孕6个月了胃疼怎么办 孕妇胃疼怎么办4个月了 25岁欠了5万块钱怎么办 感冒嗓子疼怎么办最简单的方法 和老婆离婚了我的心好痛怎么办 4s店不给退定金怎么办 教你闪腰了后该怎么办 coolpad酷派手机开不了机怎么办 苹果5s黑屏开不了机怎么办 苹果4s的屏坏了怎么办 苹果6手机充电口接触不良怎么办 5s用久了卡顿怎么办 孕妇血糖高怎么办什么方法降最好 脚砸了肿了紫了怎么办 我想在淘宝上卖东西该怎么办 苹果手机4s开不了机怎么办 冒险岛s前出2条怎么办 狗狗又吐又拉血怎么办 小孩上网成瘾怎么办父母要怎么做 一只眼睛大一只眼睛小怎么办 带近视镜时间长了眼睛变形怎么办 联通卡2g换4g卡怎么办 上火牙疼怎么办教你立刻止疼