這題還是比較容易的,不過第一次時寫掛了。。。主要思路就是類似spfa的方法預處理得到next陣列,然後就是記憶化搜尋,我沒用鏈式鄰接表,但既然陣列模擬沒mle,那就不該了吧。。
貼**(這個是我最近寫的最短的**了):
const
maxn=1010;
var g,dist,next:array[1..maxn,0..maxn] of longint;
vis:array[1..maxn] of boolean;
q:array[0..maxn] of longint;
f:array[1..maxn,1..maxn] of double;
n,e,c,m:longint;
procedure init;
var i,a,b:longint;
begin
readln(n,e);
readln(c,m);
for i:=1 to n do g[i,0]:=0;
for i:=1 to e do begin
readln(a,b);
inc(g[a,0]); g[a,g[a,0]]:=b;
inc(g[b,0]); g[b,g[b,0]]:=a;
end;
fillchar(f,sizeof(f),0);
end;
procedure path;
var top,last,i,j,now:longint;
begin
for i:=1 to n do
for j:=1 to n do dist[i,j]:=maxlongint;
for i:=1 to n do begin
dist[i,i]:=0;
next[i,i]:=i;
fillchar(vis,sizeof(vis),false);
vis[i]:=true;
top:=0; last:=1; q[last]:=i;
while top1e-9 then exit(f[p,q]);
sum:=getf(p,q);
for i:=1 to g[q,0] do
sum:=sum+getf(p,g[q,i]);
sum:=sum/(g[q,0]+1)+1;
getf:=sum;
f[p,q]:=sum;
end;
procedure main;
begin
assign(input,'cchkk.in');
assign(output,'cchkk.out');
reset(input);
rewrite(output);
init;
path;
write(getf(c,m):0:3);
close(input);
close(output);
end;
begin
main;
end.
Noi2005 聰聰和可可
noi2005 聰聰和可可 time limit 10000ms memory limit 65536k total submit 21 accepted 14 description input 資料的第1行為兩個整數n和e,以空格分隔,分別表示森林中的景點數和連線相鄰景點的路的條數。第2行包含兩...
NOI 2005 聰聰和可可(DP)
題目大意 給你個無向圖,貓在乙個點,老鼠在乙個點,貓一次走兩步,老鼠一次可以一步,也可以不走。貓每次會選擇離老鼠最近的並且編號最小的點走。老鼠有1 p 1 的概率停留在原地或走向相鄰的乙個點 p為當前點的度 求貓追老鼠的步數的數學期望。題目分析 真是個悲劇的題啊 最開始就想這個題沒法做啊 怎麼搞啊,...
NOI2005 聰聰與可可
輸入檔案 cchkk.in輸出檔案 cchkk.out簡單對比 時間限制 1 s 記憶體限制 256 mb 問題描述 在乙個魔法森林裡,住著乙隻聰明的小貓聰聰和乙隻可愛的小老鼠可可。雖然灰姑娘非常喜歡她們倆,但是,聰聰終究是乙隻貓,而可可終究是乙隻老鼠,同樣不變的是,聰聰成天想著要吃掉可可。一天,聰...