有向直線K中值問題(ksaw) 60分

2021-05-27 18:34:18 字數 696 閱讀 4604

演算法:treedp

分析:直接將3-21的模型套用過來,只有一點不同的是由原先的樹型變成了直線型,實際上變得更加簡單了,不用再分成兩棵子樹。

在遞迴的時候直接加個判斷以防止跳出邊界就行了。

program ksaw;

const

maxn=1000;

maxm=50;

var n,m:longint;

w:array [0..maxn] of longint;

d:array [0..maxn,0..maxn] of longint;

f:array [-1..maxn,-1..maxn,-1..maxm] of longint;

procedure init;

var i,j:longint;

begin

fillchar(d,sizeof(d),100);

fillchar(f,sizeof(f),100);

readln(n,m);

for i:=n downto 1 do readln(w[i],d[i,i-1]);

for i:=0 to n-1 do for j:=i+2 to n do d[j,i]:=d[j-1,i]+d[j,j-1];

end;

function min(x,y:longint):longint;

begin

if x

dp 有向樹k中值問題

問題描述 給定一棵有向樹t,樹 t中每個頂點u都有乙個權 w u 樹的每條邊 u,v 也都有乙個非負邊長 d u,v 有向樹t的每個頂點 u 可以看作客戶,其服務需求量為w u 每條邊 u,v 的邊長 d u,v 可以看作運輸費用。如果在頂點u 處未設定服務機構,則將頂點u 處的服務需求沿有 向樹的...

有向路徑檢查

對於乙個有向圖,請實現乙個演算法,找出兩點之間是否存在一條路徑。給定圖中的兩個結點的指標undirectedgraphnode a,undirectedgraphnode b 請不要在意資料型別,圖是有向圖 請返回乙個bool,代表兩點之間是否存在一條路徑 a到b或b到a 解析 有向圖需要正反判斷兩...

有向路徑檢查

題目描述 對於乙個有向圖,請實現乙個演算法,找出兩點之間是否存在一條路徑。給定圖中的兩個結點的指標directedgraphnode a,directedgraphnode b 請不要在意資料型別,圖是有向圖 請返回乙個bool,代表兩點之間是否存在一條路徑 a到b或b到a 注意的點 1.如果有環,...