將功補過(樹形dp)

2021-07-11 18:49:57 字數 2760 閱讀 3252

description(

) 作為間諜專家的elvis han受竊取x星球軍事中心的秘密情報,他已經成功進入軍事中心。但是很不幸的是,在他還沒有找到任務需要情報的時候就被發現,這時他清楚他不可能完成任務了,不過還有機會將功補過,也就是得到一些不如任務情報有價值的其他情報,如果得到的情報的總價值大於等於任務情**值,他也不會受到懲罰。很幸運的是他已經得到的軍事中心的地圖,情報都是隱藏在各個道路上的,但是他只有時間遍歷一定數量的路(時間寶貴呀!還要逃跑。。)現在你做為他的助手,給你地圖和每個道路情**值,希望你分析出,看他能不能將功補過。 

軍事中心是乙個嚴格的二叉樹,也就是說,如果有個點可以分道,一定是分出,也只分出2條道路,現在elvis han正處在第乙個分道處,也就是說樹的根結點處。每條道路上都有乙個分數,就是這個道路上的情**值。但是他只有時間走m條路,他的最終情**值總和就是他所經過的路的情**值總和(假設他到過的路一定可以把所有情報得到)希望你給出乙個方案使得他可以盡量多地獲取情報以便將功補過。 

input

共有n行: 

第一行:3個資料:n,m,q(n表示有多少個路口,包括分道和不分道的路口;m表示他可以有時間走的道路總數;q表示他的任務情報的價值) 

第2~n行:每行3個資料,xi,yi,wi(x,y表示第i條道路連線的2個路口,w表示這條道路上的情**值分, 注意,所有資料均在lonint範圍內) 

output

共包含2行: 

第一行:輸出true/false(注意大小寫),表示他是否可以收集夠任務情**值 

第二行:輸出乙個資料: 

如果他可以完成任務,就輸出他收集的情報總價值超過任務情**值的部分。(正數) 

如果不能完成任務,就輸出乙個數,表示他不能還差多少分才夠任務情**值。(負數) 

sample input

【樣例輸入1】
3 1 10
1 2 10
1 3 8
【樣例輸入2】
9 3 49
6 2 15
7 2 10
8 7 6
7 9 15
1 3 20
2 1 10
4 3 8
3 5 7
sample output

【樣例輸出1】
true
0
樣例說明:(該部分不必輸出)
3               2
(8)\    /(10)
1   (選擇1條路當然選1-2)
【樣例輸出2】
false
-4
樣例說明:
8              9
(6) \  / (15)
6   7     4         5
(15)\   / (10)\ (8)  /(7)
2            3
(10)\          /(20)
1(由於他最大可以取得的是[1->3]+[1->2]+[2->6]3條路徑的價值,才45,所以不可能完成任務)
hint

《資料規模》 

對於30%的資料 保證有n<=10 

對於50%的資料 保證有n<=40 

對於全部的資料 保證有n<=100 

varf,b:array[0..200,0..200] of longint;

a:array[0..200,1..3] of longint;

d:array[0..200] of longint;

i,j,k,l:longint;

n,m,q:longint;

ans:longint;

procedure make(v:longint);

vari,j,k:longint;

begin

for i:=1 to n do

begin

if b[v,i]>0 then  

begin  

a[v,1]:=i;

d[i]:=b[v,i]-1;

b[v,i]:=-1;b[i,v]:=-1;

make(i);

break;

end;

end;

for i:=1 to n do

begin

if b[v,i]>0 then

begin

a[v,2]:=i;

d[i]:=b[v,i]-1;

b[v,i]:=-1;b[i,v]:=-1;

make(i);

break;

end;

end;

end;

procedure dfs(i,j:longint);

vark:longint;

begin

if j=0 then exit;

if f[i,j]<>0 then exit;

if (a[i,1]=0) and (a[i,2]=0) then

begin

f[i,j]:=d[i];

exit;

end;

for k:=0 to j-1 do

begin

dfs(a[i,1],k);

dfs(a[i,2],j-k-1);

iff[i,j]

將功補過 樹形DP

題意 description 作為間諜專家的elvis han受竊取x星球軍事中心的秘密情報,他已經成功進入軍事中心。但是很不幸的是,在他還沒有找到任務需要情報的時候就被發現,這時他清楚他不可能完成任務了,不過還有機會將功補過,也就是得到一些不如任務情報有價值的其他情報,如果得到的情報的總價值大於等...

將功補過 樹形DP

time limit 10000ms memory limit 65536k total submit 41 accepted 28 case time limit 1000ms description 作為間諜專家的elv is elvis elvishan hanha n受竊取x xx星球軍事中...

2005 2 3 加班啦,算是將功補過

又遲到了,5555555555555555555555555 把分診的問題改好了 裝置維護中增加了乙個屬性 分診主機 這個屬性的作用確定用哪台工作站為該裝置分診,當為空時表示不參加分診 分診模組中根據上述屬性確定要控制分診的裝置 只對 分診主機 屬性是該工作站名稱的裝置分診 同時分診中僅顯示與參與分...