聚会的快乐(party.exe)【问题描述】你要组织一个由你公司的人参加的聚会.尽可能多地找些有趣的热闹.但是劝你不要同时邀请某个人和他的上司,因为这可能带来争吵.给定N个人(姓名,他幽默

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 18:42:41

聚会的快乐(party.exe)【问题描述】你要组织一个由你公司的人参加的聚会.尽可能多地找些有趣的热闹.但是劝你不要同时邀请某个人和他的上司,因为这可能带来争吵.给定N个人(姓名,他幽默
聚会的快乐(party.exe)
【问题描述】
你要组织一个由你公司的人参加的聚会.尽可能多地找些有趣的热闹.但是劝你不要同时邀请某个人和他的上司,因为这可能带来争吵.给定N个人(姓名,他幽默的系数,以及他上司的名字),编程找到能使幽默系数和最大的若干个人.
【输入】
第一行一个整数N(Nb then exit(a) else exit(b);
end;
procedure treedp(t:longint);
var i:longint;
begin
for i:=1 to son[t,0] do
treedp(son[t,i]);
for i:=1 to son[t,0] do
begin
f[t,0]:=max(f[son[t,i],0],f[son[t,i],1])+f[t,0];
f[t,1]:=f[son[t,i],0]+f[t,1];
end;
end;
begin
assign(input,'party.in');reset(input);
assign(output,'party.out');rewrite(output);
readln(n);
for l:=1 to n do
begin
readln(s);
t:=pos(' ',s);
s1:=copy(s,1,t-1);
u:=0;
for i:=1 to k do
if s1=g[i] then begin u:=i;break;end;
if u=0 then begin inc(k);g[k]:=s1;u:=k;end;
delete(s,1,t);
t:=pos(' ',s);
s1:=copy(s,1,t-1);
val(s1,a[u],code);
delete(s,1,t);
u1:=0;
for i:=1 to k do
if s=g[i] then begin u1:=i;break;end;
if u1=0 then begin inc(k);g[k]:=s;u1:=k;end;
inc(son[u1,0]);
son[u1,son[u1,0]]:=u;
fa[u]:=u1;
end;
for i:=0 to k do begin f[i,1]:=a[i];f[i,0]:=0;end;
for i:=1 to k do
if fa[i]=0 then
begin
inc(son[0,0]);
son[0,son[0,0]]:=i;
end;
treedp(0);
writeln(max(f[0,0],f[0,1]));
close(input);close(output);
end.
错了一个点,求找错误.
题解如下
【问题分析】
用动态规划求解.首先,很显然公司的人员关系构成了一棵树.设f[a]为a参加会议的情况下,以他为根的子树取得的最大幽默值;g[a]为a不参加会议的情况下,以他为根的子树取得的最大幽默值.那么,状态转移方程就是:
\x05f[a]=g[b1]+g[b2]+…+g[bk]+w[a]
\x05g[a]=max(f[b1],g[b1])+max(f[b2],g[b2])+…+max(f[bk],g[bk])
\x05其中b1,b2,…,bk为a的子结点.
\x05最后的答案就是max(f[root],g[root]),root是树根.
抱歉,错误数据发不上来,只错了一个点.要错的哪一个点数据的请留邮箱.回答出来,我还会追加分数

聚会的快乐(party.exe)【问题描述】你要组织一个由你公司的人参加的聚会.尽可能多地找些有趣的热闹.但是劝你不要同时邀请某个人和他的上司,因为这可能带来争吵.给定N个人(姓名,他幽默
我认为你的程序是对的 可能是题目或数据不太对
你给我的数据中:
14行:FD 50 AEMHOCH
45行:FD 4 FKYOIE
这是什么情况?一个人有两个上司和两个幽默度?
可能是这数据出了点小问题吧
(ps:这题树根上的上司是没有幽默度的?)

聚会的快乐(party.exe)【问题描述】你要组织一个由你公司的人参加的聚会.尽可能多地找些有趣的热闹.但是劝你不要同时邀请某个人和他的上司,因为这可能带来争吵.给定N个人(姓名,他幽默 party(晚会;聚会)的词性 作文:快乐的生日聚会 跪求描述快乐的聚会场景 句子翻译:他在聚会上玩的很高兴. He ( ) ( ) at the party. 在聚会上用什么介词?( )the party? 英语翻译外国人的聚会常常用party ,但在电影里看到他们的party和我们的传统聚会不同,那么中国的聚会有什么更合适的说法呢,比如说古时候文人的聚会,可以用party 周五你能来参加我的生日聚会吗?()you()to my birthday party()Frid周五你能来参加我的生日聚会吗?()you()to my birthday party()Friday? 英语翻译(我爸爸朋友的生日聚会)my father's friend's birthday party可以翻译吗我爸爸朋友的生日聚会my father's friend's birthday party可以翻译吗 如果他不邀请我们、我们就不参加他的聚会 用英语怎么说(unless,party) 以“my birthday party 为题,写一篇英语作文,既要写到以前的生日聚会,也要写到以后希望的生日聚会! 计算机的exe是什么意思? 十岁的生日聚会用英语怎么说?10-year-old's birthday party还是10-year-old birthday party? 汉译英:下周日,你的朋友参加你的生日聚会吗?( )your friend是( )to( )to your birthday party nextSunday?是一般将来时。 为什么不邀请你的同学参加你的生日聚会 英语怎么说?________________________________your birthday party? 与bachelor party(单身聚会)有关的电影比如像宿醉这样的 翻译:我很高兴你邀参加你的生日聚会.I‘m gald that you( ) ( ) ( )your birthday party. (初二英语)根据汉语意思完成句子明天你能来参加我的聚会吗?Can you( )( )to my party tomorrow?