1. 程式人生 > >藍橋杯 生命之樹

藍橋杯 生命之樹

#include <cstdio>
#include<iostream>
#include <cstring>
#include <cmath>
#include <algorithm>
#include<set>
using namespace std;
int n;
int map1[10008][10008],v[10008],a[10008];
int max1=0;
//思路:從子樹開始找最大的值,更新節點是如果子樹的節點會讓自己的
//值變大就加上,不然不加,每跟新一次節點就更新一次最大值
void dfs(int cnt)
{
    v[cnt]=1;
    for(int i=1;i<=n;i++)
    {
        if(!v[i]&&map1[cnt][i])
        {
            dfs(i);
            if(a[cnt]<a[cnt]+a[i])
            {
                a[cnt]=a[cnt]+a[i];
            }
            max1=max1>a[cnt]?max1:a[cnt];
        }

    }
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
    {scanf("%d",&a[i]);
    }
memset(map1,0,sizeof(map1));
memset(v,0,sizeof(v));
int b,c;
for(int i=1;i<n;i++)
{
    scanf("%d%d",&b,&c);
    map1[c][b]=map1[b][c]=1;
}
dfs(1);
cout<<max1<<endl;
    return 0;
}

相關推薦

藍橋 生命

#include <cstdio> #include<iostream> #include <cstring> #include <cmath> #in

樹形dp|無根轉有根|2015年藍橋生命

兩個 代碼 ima www. https 2015年 藍橋 ack 大小 2015年藍橋杯第十題——生命之樹(無根樹dfs) ①暴力解法:枚舉子集(選點) + dfs判斷連通性(題目要求連通)滿足上面兩個條件下找出最大值權值和 ②dfs無根樹轉有根樹,遞歸找最優 先學習

藍橋第六屆省賽JAVA真題----生命

生命之樹 在X森林裡,上帝建立了生命之樹。  他給每棵樹的每個節點(葉子也稱為一個節點)上,都標了一個整數,代表這個點的和諧值。  上帝要在這棵樹內選出一個非空節點集S,使得對於S中的任意兩個點a,b,都存在一個點列 {a, v1, v2, …, vk, b} 使得

第六屆-藍橋省賽-生命

10、生命之樹 在X森林裡,上帝建立了生命之樹。他給每棵樹的每個節點(葉子也稱為一個節點)上,都標了一個整數,代表這個點的和諧值。上帝要在這棵樹內選出一個非空節點集S,使得對於S中的任意兩個點a,b,都存在一個點列 {a, v1, v2, ..., vk, b} 使得這個點

藍橋-2015省賽-生命

在X森林裡,上帝建立了生命之樹。 他給每棵樹的每個節點(葉子也稱為一個節點)上,都標了一個整數,代表這個點的和諧值。 上帝要在這棵樹內選出一個非空節點集S,使得對於S中的任意兩個點a,b,都存在一個點列 {a, v1, v2, ..., vk, b} 使得這個點列中的每個

藍橋第六屆 第10題 生命

在X森林裡,上帝建立了生命之樹。 他給每棵樹的每個節點(葉子也稱為一個節點)上,都標了一個整數,代表這個點的和諧值。 上帝要在這棵樹內選出一個非空節點集S,使得對於S中的任意兩個點a,b,都存在一個

2015年藍橋省賽B組第10題--生命

在X森林裡,上帝建立了生命之樹。 他給每棵樹的每個節點(葉子也稱為一個節點)上,都標了一個整數,代表這個點的和諧值。 上帝要在這棵樹內選出一個非空節點集S,使得對於S中的任意兩個點a,b,都存在一個點列 {a, v1, v2, ..., vk, b} 使得這個點列中的每個點都是S裡面的元素,且序列中相鄰兩個點

2017第八屆藍橋決賽

       時間過得好快,四小時匆匆過去了。其實三個小時的時候就已經坐不住了,想跑。。再看題,看不懂,再檢查,不知道破綻在那裡。拿起麵包,狠狠地撕開咬了一口,拿過牛奶猛吸幾口。看看對面的強哥,笑了笑

2014藍橋預賽猜字母

標題:猜字母     把abcd...s共19個字母組成的序列重複拼接106次,得到長度為2014的串。     接下來刪除第1個字母(即開頭的字母a),以及第3個,第5個等所有奇數位置的字母。     得到的新串再進行刪除奇數位置字母的動作。如此下去,最後只剩下一個字母

藍橋 校外的 線段

#include <iostream> #include <stdio.h> #define N 10010 #define lson l,mid,rt<<1 #define rson mid+1,r,rt<<1|1 using namespace std;

藍橋練習入門訓練

第一題: 問題描述 Fibonacci數列的遞推公式為:Fn=Fn-1+Fn-2,其中F1=F2=1。 當n比較大時,Fn也非常大,現在我們想知道,Fn除以10007的餘數是多少。 輸入格式 輸入

生命常青,英雄魂永不朽

一 上一個被世人銘記的庚子年是1900年,它使得一群普通人被世人銘記,那些英勇抗擊八國聯軍侵華的普通百姓,他們用自己的拳腳功夫和冷兵器和西方列強鬥爭,旨在爭取民族自強,然而卻被清政府和八國聯軍聯合絞殺下最終失敗。 那是一群英雄,一群普通人,他們拋棄頭顱灑下的點滴熱血,迄今仍然在中華大地上蕩起了慷慨悲歌。 今年

藍橋——算法訓練乘積最大

算法 char 朋友 題意 man time space margin family 問題描寫敘述   今年是國際數學聯盟確定的“2000——世界數學年”,又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動

藍橋實例開發板特點

單片機 以及 三種 one size 分享 總結 為什麽 實驗 本人之前參加了藍橋杯,下面我將總結一下我的經歷,由於本人技能有限,請多見諒! 我之前用過幾種51的板子,說說藍橋杯的板子: 首先開發板設置了三種芯片的插座,說實話,我估計設計者是出於性價比高的考慮,如果

藍橋java 基礎練習 Huffuman

i++ 整數 ans java 輸入格式 ava sca new 下一個 問題描述   Huffman樹在編碼中有著廣泛的應用。在這裏,我們只關心Huffman樹的構造過程。  給出一列數{pi}={p0, p1, …, pn-1},用這列數構造Huffman樹的過程如下:

藍橋FJ的字符串

結束 log 輸出 can %d style scan bad esp 基礎練習 FJ的字符串 時間限制:1.0s 內存限制:512.0MB 問題描述   FJ在沙盤上寫了這樣一些字符串:   A1 = “A”   A2 = “ABA”   A3 = “A

藍橋練習系統—基礎練習 sine

ostream 練習系統 style log pan 準備 post 題目 ... 題目:最近FJ為他的奶牛們開設了數學分析課,FJ知道若要學好這門課,必須有一個好的三角函數,所以他準備和奶牛們做一個“Sine之舞”的遊戲,寓教於樂,提高奶牛們的計算能力。   不妨設  A

藍橋16進制轉8進制

系統 建立 轉換 pan jdk ram string class col 題目: 問題描述  給定n個十六進制正整數,輸出它們對應的八進制數。輸入格式  輸入的第一行為一個正整數n (1<=n<=10)。  接下來n行,每行一個由0~9、大寫字母A~F組成的字

藍橋】第六屆國賽C語言B組 1.積分迷(水題)

水題 urn class %d names 風鈴 需要 藍橋 std 小明開了個網上商店,賣風鈴。共有3個品牌:A,B,C。為了促銷,每件商品都會返固定的積分。 小明開業第一天收到了三筆訂單:第一筆:3個A + 7個B + 1個C,共返積分:315第二筆:4個A + 10個

藍橋——FBI

環境CodeBlocks17 OJ系統通過 // @CGQ 2018/11/22 時間緊迫沒怎麼寫註釋 #include <iostream> #include <stdio.h> #include <stdlib.h> #include <str