第十屆藍橋杯省賽C B組 完全二叉樹的權值

2021-09-13 19:27:02 字數 1043 閱讀 8377

試題 g:完全二叉樹的權值

時間限制:1.0s     記憶體限制:256.0mb     本題總分:20 分

【問題描述】

給定一棵包含 n 個節點的完全二叉樹,樹上每個節點都有乙個權值,按從上到下、從左到右的順序依次是 a1, a2, ··· an,如下圖所示:

現在小明要把相同深度的節點的權值加在一起,他想知道哪個深度的節點權值之和最大?如果有多個深度的權值和同為最大,請你輸出其中最小的深度。

注:根的深度是 1。

【輸入格式】

第一行包含乙個整數 n。

第二行包含 n 個整數 a1, a2, ··· an 。

【輸出格式】

輸出乙個整數代表答案。

【樣例輸入】

71 6 5 4 3 2 1

【樣例輸出】

2【評測用例規模與約定】

對於所有評測用例,1≤ n ≤100000,−100000≤ ai ≤100000。

思路:不要看到是完全二叉樹就被嚇到,其實這個題也沒有涉及到樹的資料結構。學過樹的人都知道,完全二叉樹的深度是log2(n+1)向上取整,沒學過看著示意圖也能推理出來,並且第i層有2^(i-1)個節點,然後列舉每乙個深度的節點權值和就可以了。 有一點需要注意的是,庫函式裡面沒有log2()函式,只有log()函式(相當於ln),所以這裡log2(n+1)要改寫成log(n+1)/log(2)。

**:

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define inf 0x3f3f3f3f

#define n 100005

int num[n]=;

int main()

} printf("%d\n",ans);

return 0;

}

第十屆藍橋杯省賽C B組 數列求值

試題 c 數列求值 本題總分 10 分 問題描述 給定數列 1,1,1,3,5,9,17,從第 4 項開始,每項都是前 3 項的和。求第 20190324 項的最後 4 位數字。答案提交 答案 4659 思路 因為結果只要最後4位數字,所以每做一次加法就對10000取模即可。include incl...

第十屆藍橋杯省賽C B組 數列求值

試題 c 數列求值 本題總分 10 分 問題描述 給定數列 1,1,1,3,5,9,17,從第 4 項開始,每項都是前 3 項的和。求第 20190324 項的最後 4 位數字。答案提交 答案 4659 思路 因為結果只要最後4位數字,所以每做一次加法就對10000取模即可。感想 這個題我開始以為陣...

第十屆藍橋杯省賽C B組 數列求值

給定數列 1,1,1,3,5,9,17,從第 4 項開始,每項都是前 3 項的和。求第 20190324 項的最後 4 位數字。看題肯定就是遞推沒跑。for int i 4 i 20190324 i a i a i 1 a i 2 a i 3 1.這道題不 10000就會資料過大,且後四位也只受到後...