2019第十屆藍橋杯G完全二叉樹的權值

2022-09-09 03:18:08 字數 1230 閱讀 4029

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

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

【問題描述】

給定一棵包含 n 個節點的完全二叉樹,樹上每個節點都有乙個權值,按從

上到下、從左到右的順序依次是 a 1 , a 2 , ··· a n ,如下圖所示:

現在小明要把相同深度的節點的權值加在一起,他想知道哪個深度的節點

權值之和最大?如果有多個深度的權值和同為最大,請你輸出其中最小的深度。

注:根的深度是 1。

【輸入格式】

第一行包含乙個整數 n。

第二行包含 n 個整數 a 1 , a 2 , ··· a n 。

【輸出格式】

輸出乙個整數代表答案。

【樣例輸入】

71 6 5 4 3 2 1

【樣例輸出】

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

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

分析

①因為題目說了是一顆完全二叉樹,所以用順序儲存即可,注意下標要從1開始;

②兩層迴圈算出每層結點的權值,記錄下最大的即可;

1 #include2

using

namespace

std;

3const

int maxn=1000;4

intmain();//

a用來順序儲存樹的權值,c用來存放樹的深度所對應的權值

6int n;//

k是深度

7 scanf("

%d",&n);

8for(int i=1;i<=n;i++)

11 c[1]=a[1];//

第一層單獨處理

12int k=2;13

int ans=1;14

for(int i=2;i<=n;i=i+pow(2,k-2

))18

if(c[k]>c[k-1]) ans=k;

19 k++;20}

21 cout<4]<

22 printf("%d"

,ans);

23 }

2019第十屆藍橋杯C C

這是我第一次參加藍橋杯比賽,比完後,有點低於預期,自己的發揮低於預期,賽事水準也低於預期。教室裡面很多同學的電腦出現問題,舉辦學校也沒有完善的應急方案,有一部分同學11點鐘才可以做題。提取碼 560f1.給20個球員擔任五個不同位置的得分,要你選五個球員組成一支球隊的最大得分。這道題要是全排列做的話...

2019第十屆藍橋杯 I 胖子迷宮

題目意思 給你乙個n m的迷宮,能走,障礙物,乙個胖子一開始在3,3,體積為5 5 不過胖子走迷宮的目的是為了 給你乙個時間k,當到達時間k時,胖子餓瘦了變成3 3,當到達時間2 k時,更瘦了變成1 1 題目要求到達 n 2,m 2 這個點所需的最短時間。n,m 300,解決思路,參考hdu1026...

藍橋杯 2023年第十屆真題 完全二叉樹的權值

給定一棵包含 n 個節點的完全二叉樹,樹上每個節點都有乙個權值,按從 上到下 從左到右的順序依次是 a1,a2,an,如下圖所示 現在小明要把相同深度的節點的權值加在一起,他想知道哪個深度的節點 權值之和最大?如果有多個深度的權值和同為最大,請你輸出其中最小的深度。注 根的深度是 1。第一行包含乙個...