NDK 1367 yep的聚会

来源:互联网 发布:招聘网站 网络文案 编辑:程序博客网 时间:2024/04/29 05:25

问题描述:

 yep喜欢和它所遇见的所有女性成为朋友,因此它有很多朋友。依照亲密程度,yep给它的朋  友划定了等级,等级数越小,亲密程度越大。例如,”某女“为1级,”非常亲密”为2级,等  等。某女只有一个,其它等级的朋友可以有多个。由于yep强大的个人实力,每个等级  i(i>1)的朋友会嫉妒一个等级为i-1的朋友。现在yep想邀请它的所有朋友开个聚会讨论人  生追求与理想。为了保持社会和谐,yep希望参加聚会的朋友间没有矛盾;为了将来的人  生,它还希望参加聚会的朋友的美丽度之和最大。为了满足它小小的追求,yep请你帮它计  算,参加聚会的朋友的美丽度之和最大为多少。

数据输入:

 第1行为一个整数N,为yep的朋友数量。

 第2行到第N+1行每行二个整数P,Q。第i行的数分别表示编号为i-1的朋友的美丽度和她所  嫉妒的朋友的编号(Q=-1表示此行描述的是某女)。

结果输出:

 一个数ANS,为参加聚会的朋友的美丽度之和的最大值。

样例:

 6

 30 -1

 15 1

 2 1

 17 2

 23 2

 7 3

77

核心思想:

 Dp,上司选下属不选,上司不选下属爱选不选,也可以成为回溯哈。

type edge=record d,y,next:longint; end;var a:array[0..200001]of edge; f,first:array[0..200001]of longint; n,i,tot,x,y,d:longint;procedure ad_edge(x,y,d:longint);begin inc(tot); a[tot].y:=y; a[tot].d:=d; a[tot].next:=first[x]; first[x]:=tot;end;function dfs(x:longint):longint;var t,k,sum1,sum2:longint;begin iff[x]>0 then exit(f[x]); t:=first[x]; sum1:=a[x].d; sum2:=0; while t>0 do begin  k:=first[t];  while k>0 do   begin    inc(sum1,dfs(k));    k:=a[k].next;   end;  inc(sum2,dfs(t));  t:=a[t].next;  end; ifsum1>sum2 then f[x]:=sum1 else f[x]:=sum2; exit(f[x]);end;begin assign(input,'yepparty.in');reset(input); assign(output,'yepparty.out');rewrite(output); tot:=0; readln(n); fori:=1 to n do begin  readln(d,y);  ad_edge(y,i,d); end; writeln(dfs(1)); close(input);close(output);end.
题目来源:NDK 1367

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃了减肥药怀孕怎么办 win10玩不了qq堂怎么办 电脑只有c盘了怎么办 美拍直播没人看怎么办 洛神花孕妇喝了怎么办 黑枸杞泡水褐色怎么办 红薯吃多了胃胀怎么办 在赌场掉了筹码怎么办? 到缅甸被绑架了怎么办 在淘宝不给退货怎么办 鞋上魔术贴坏了怎么办 手机支架不粘了怎么办 赌博把房子输了怎么办 当发现老公有外遇时怎么办 led灯带中间不亮怎么办 飘窗的天花板凸怎么办 一受委屈就爱哭怎么办 6岁儿童叛逆期怎么办 孩子高一了厌学怎么办 除上有肥胖纹怎么办 6岁不爱写作业怎么办 初中孩子不爱写作业怎么办 孩子上课走神写作业慢怎么办 孩子作业写得慢怎么办 4岁宝宝不写作业怎么办 小孩作业写得慢怎么办 3岁宝宝不写作业怎么办 小孩不写作业怎么办呀 作业没写完的人怎么办? 孩子不写作业家长该怎么办 做作业做得慢怎么办 高一作业写得慢怎么办 孩子做作业不认真怎么办 孩子不主动做作业怎么办 写作业静不下心怎么办 小孩不写作业怎么办啊 小孩子写作业爱磨蹭怎么办 孩子在学校不写作业怎么办 鳗鱼刺卡在喉咙怎么办 被小鱼刺卡住了怎么办 喉咙上卡了鱼刺怎么办