***************===
1.巧用floyed思路確定樹中節點的關係
題目描述:
今天的問題是求子樹大小。
輸入一棵樹(樹的度最大為10),求每棵子樹大小,請輸出以每棵子樹的節點總數。
輸入檔案:tree.in
第一行:n(結點個數,n<=100),m(邊數)。
以下m行;每行兩個結點x和y,表示y是x的孩子。
輸出檔案:tree.out
依次輸出以1..n號節點為根的子樹節點總數(即按根節點編號從小到大的順序輸出)
樣例輸入:
8 72 7
2 62 8
4 14 2
1 51 3
樣例輸出:
3 4 1 8 1 1 1 1
樣例說明:輸入資料即上圖的一棵樹,樣例輸出表示以1號節點為根的子樹共有3個節點,以2號節點為根的子樹共有4個節點,依次類推。
[delphi]view plain
copy
var f:array[1..100,1..100] of
boolean;
p:array[1..100] of
integer;
i,j,k,n,m:integer;
begin
readln(n,m);
for i:=1
to m do
begin
readln(x,y);
f[x,y]:=true;
end;
for k:=1
to n do
for i:=1
to n do
for j:=1
to n do
if f[i,k] and f[k,j] then f[i,j]:=true;
for i:=1
to n do
for j:=1
to n do
if f[i,j] then inc(p[i]);
for i:=1
to n do
write(p[i]+1,' ');
end.
2.改進floyed方法求最小環
[delphi]view plain
copy
min:=maxint;
for k:=1
to n do
begin
for i:=1
to k-1
dofor j:=i+1
to k-1
doif g[i,j]+g[i,k]+g[j,k]then min:=g[i,j]+g[i,k]+g[j,k];
for i:=1
to n do
for j:=1
to n do
if g[i,k]+g[k,j]then g[i,j]:=g[i,k]+g[k,j];
end;
writeln(min);
3.多種方法解決同一問題
問題c: 奇怪的電梯 ( lift.pas )
問題描述:
呵呵,有一天我做了乙個夢,夢見了一種很奇怪的電梯。大樓的每一層樓都可以停電梯,而且第i層樓(1<=i<=n)上有乙個數字ki(0<=ki<=n)。電梯只有四個按鈕:開,關,上,下。上下的層數等於當前樓層上的那個數字。當然,如果不能滿足要求,相應的按鈕就會失靈。例如:3 3 1 2 5代表了ki(k1=3,k2=3,……),從一樓開始。在一樓,按「上」可以到4樓,按「下」是不起作用的,因為沒有-2樓。那麼,從a樓到b樓至少要按幾次按鈕呢?
輸入格式:
輸入檔案共有二行,第一行為三個用空格隔開的正整數,表示n,a,b(1≤n≤200, 1≤a,b≤n),第二行為n個用空格隔開的正整數,表示ki。
輸出格式:
輸出檔案僅一行,即最少按鍵次數,若無法到達,則輸出-1。
分析:建圖1]確定節點:以第i層樓為i號節點,共n個節點。
2]確定邊:從本題易知,邊為第i樓到第j樓轉換所需代價g[i,j]。由於本題連通的每層樓之間轉換的代價為1次,所以確定g[i,j]:=1;若兩層樓不能互通,則令g[i,j]:=maxint;
3]用程式構圖
[delphi]view plain
copy
for i:=1
to n do
for j:=1
to n do g[i,j]:=maxint;
for i:=1
to n do
begin
if i+k[i]<=n then g[i,i+k[i]]:=1;
if i-k[i]>=1
then g[i,i-k[i]]:=1;
end;
問題實質:最短路徑
法1(floyed):
[delphi]view plain
copy
for u:=1
to n do
for i:=1
to n do
for j:=1
to n do
if g[i,u]+g[u,j]then g[i,j]:=g[i,u]+g[u,j];
if g[a,b]then
writeln(g[a,b]) else
writeln(-1);
領域模型驅動應用心得
幾乎每種語言 開發框架和工具面世時,都號稱要把開發人員解放出來,讓他 她們更加關注於業 務邏輯的處理。但目前的工作狀況是,每當乙個新的 解放工具 出現,就會有眾多的技術狂熱者蜂擁而上,而忽略了他們最應該關注的業務邏輯部分。還好,從 2004年開始,領域驅動設計 的聲音開始浮現,開始逐漸扭轉這種局面。...
frameset 使用心得
欲明白本篇 html徹底剖析 之標記分類,請看 標記一覽 也請先明白圍堵標記與空標記的分別,請看 html概念 框架概念 謂框架便是網頁畫面分成幾個框窗,同時取得多個 url。只需要 即可,面所有框架標記需要放在乙個總起的 html 檔,這個檔案只記錄了該框架如何分割 不會顯示任何資料,所以不必放入...
Access使用心得
今天臨時用access做資料庫,長期用sql server開發習慣了,總結一下現在為止用到的比較大的差異,以後有新的再補了 1 返回字串長度 len s lenb s 前者返回字元數,後者返回位元組數,並且access中text型別字元統一為2位元組,與sql2000不同。2 join的使用 acc...