小頂堆 尋找寶藏 先序遍歷等父子關係的題型

2021-10-04 13:23:37 字數 1461 閱讀 7822

一開始用鄰接表加遞迴,總是超限,後來想想,有了父子關係,那麼輸入就是最好的判斷。

判斷類的題目和求結果不一樣,判斷類的題目往往不用費常複雜的無腦運算,而是通過一些過程的比較和標記對flag進行改變,最終的出判斷結果。

就比如我們的程序管理,也是判斷類,通過設定mark陣列,很好的實現了功能,而檔案系統的話,畢竟要求出結果的,那就比較無腦了。

/*

輸入樣例 41

10 3

10 5 3

1 2

1 3

5 1 2 3 4 5

1 3

1 2

2 4

2 5

58 7 6 5 9

1 21 3

2 42 5

輸出樣例

yes

no yes

*/#include using namespace std;

int arr[105];

int main()

int flag=1;

for(int i=0;iarr[b])

}if(flag) printf("yes\n");

else printf("no\n");

} return 0;

}

尋找寶藏

時間限制 1000 ms 記憶體限制 65536 kb special judge

題目描述

有一棵多叉樹t,你在樹根處,寶藏在某一葉子節點l。現在你沿著樹枝向葉子方向走去,從不回頭,如果遇到樹叉節點,你等概率地挑選乙個分支繼續走。請問,在給定t,l的情況下,你有多大概率拿到寶藏?

輸入格式

第一行,整數

n m l

(1< n< 1000,0< m< 1000,0< l< n),分別代表樹t上的節點數、樹枝的個數,寶藏所在節點。樹根為0號結點。然後有m行,每行兩個整數a,b(0≤ a,b< n)代表從節點a到節點b有一條樹枝。可以假設節點a

總是更靠近樹根。

輸出格式

所求的概率,輸出四捨五入到6位小數,然後換行。

輸入樣例

6 5 5

0 11 3

0 22 4

2 5輸出樣例

0.250000

也是利用父子關係,是父親到這個目標節點,每層所有的分支相乘做分母

#include using namespace std;

vectorgraph[1005];

int father[1005];

int main()

;tree son[50];

void preorder(int root)

cout<>t;

while(t--)

preorder(root);

cout<} return 0;

}

大頂堆小頂堆

堆通常是乙個可以被看做一棵完全二叉樹的陣列物件 如果對一棵有n個結點的完全二叉樹的結點按層序編號 從第1層到第 1層,每層從左到右 則對任一結點i 1 i n 有 1 如果i 1,則結點i無雙親,是二叉樹的根 如果i 1,則其雙親是結點。2 如果2i n,則結點i為葉子結點,無左孩子 否則,其左孩子...

堆排(大頂堆,小頂堆)

分類 資料結構 演算法相關 2009 10 15 12 26 2289人閱讀收藏 舉報汗,別人都說大小頂堆只是改改大於號的問題,可我的 從大頂堆只改動大於號調整為小頂堆竟然越界樂,掣肘!後來幾經更改才發現是傳參的問題 見 看來大頂堆改小頂堆不是 亦或是我rp出點問題?搞笑的是 磚頭 c b 竟然對越...

序列 貪心 小頂堆

給定m個序列,每個包含n個非負整數。現在我們可以從每個序列中選擇乙個數字以形成具有m個整數的序列。很明顯,我們一共可以得到nm個這種序列,然後我們可以計算每個序列中的數字之和,並得到nm個值。現在請你求出這些序列和之中最小的n個值。輸入格式 第一行輸入乙個整數t,代表輸入中包含測試用例的數量。接下來...