タイトル説明
暁明数学の完全な関心、そして勤勉学生では、常に先生にいくつか質問をするクラスの後、教室に滞在します。彼は朝に乗っに学校に行ってきました。ある日、老人を参照するには、道路が突然花を剪定についての質問を考え、剪定植物や花です。だから、放課後の日は、暁明は、教師との問題を提起します:
さえの合計持っている上に奇妙な花、N個の花を、あるN - 1本のTiaoの枝は花にリンクされ、剪定されていないとき、すべての花が隔離されていませんが。それぞれの花は「美しいインデックス」、花の数も大きく、より美しくするだけでなく、「美しいインデックスは、」すべての嫌な見て花を示し、負のを持っています。意味は、いわゆる「剪定」は、:それらの枝を取り除くので、花は2、1つのスローになりました。「剪定」の一連の後、彼は(おそらく)最後の花を残しました。教師の仕事は、以下のとおりです(何が行われていない「トリミング」することができます)、「剪定」のシリーズを通じて、親族(花)の残りのような花「ビューティフル指数」と最大の合計のすべての花。
一瞬思った先生は、正のソリューションを提供します。暁明は、問題は非常に不幸、簡単に壊れているので、彼はあなたを尋ねるために使用される参照してください。
入力形式
整数の最初のラインN (1 ≤ N ≤ 1 。6 0 0 0 )。それは、合計で成長しているオリジナルの花を表すNの花を。
第二の線が有するN個の整数を、第Iの整数を表し、私は美容インデックスを-flowered。
次いで、N-1 ラインの各2つの整数を、接続の存在を示すB、花及びB花の枝を。
出力フォーマット
「剪定」の一連の後に最大値を表す数値は「ビューティフルインデックス」の合計を得ることができます。絶対値以下である2 。1 。4 。7 。4 。8 。3 。6 。4 7
サンプル入力と出力
7 -1 -1 -1 1 1 1 0 1 4 2 5 3 6 4 7 5 7 6 7
3
説明/ヒント
スケールデータと[合意]
ため。6 0 データの%、あるN ≤ 1。0 0 0。
以下のために。1 0 0 データの%、あるN ≤ 1 。6 0 0 0。
元のタイトル羅区P1122
アートワークは、ツリーを取得することが容易であり、木の剪定は、どのように彼の父の子に影響するので、木のDPを考慮していません
#include <iostreamの> する#include <cstdioを> する#include <CStringの> する#include <climits> 使用して 名前空間STD。 INTのサブツリー[ 100500 ]、DP [ 100500 ]、N、ヘッド[ 100500 ]、NUM、C [ 100500 ]。 構造体の縁 { int型、U、V、NXT。 } E [ 200500 ]。 ボイド追加(INT U、INT V) { E [ ++ NUM] .U = U、E [NUM] .V = V。 E [NUM] .nxt =頭部[U];頭部[U] = NUM。 } のボイドINIT(int型のx、int型FA) { int型 ANS = C [X]。 以下のために(int型 ST =頭部[X]; ST =! - 1 ; ST = E [ST] .nxt) { int型 = Y E [ST] .V。 もし(Y == FA)続けます。 INIT(Y、X)。 ANS + = サブツリー[Y]。 } サブツリー[X] = ANS。 返します。 } INT DP(int型のx、int型FA) { DP [X] = サブツリー[X]。 にとって(int型 - ;!ST = ST =頭部[X] 1 ; ST = E [ST] .nxt) { int型、Y = E [ST] .Vと、 もし(Y == FA)続けます。 DP(Y、X)。 DP [X] = MAX(DP [X] -subtree [Y]、DP [X] -subtree [Y] + DP [Y])。 } 戻りDP [X]。 } int型のmain() { memsetの(頭、 - 1、はsizeof ヘッド) scanf関数(" %のD "、&N) 用(int型 iは= 1のscanf(私は++; iが<= N)"%のD "& C [i]は); int型、B; のため(int型 i = 1 ; iがn <; iは++ ) { scanf関数(" %d個の%のD "、&、&B); (A、Bを追加) ;(B、A)を追加 } INIT(1、 - 1 ); DP(1 - 1 ); INT ANS = INT_MIN; のため(int型 I = 1は iがn = <; iは++ ) ANS = MAX(ANS 、DP [I]); のprintf(" %のD " 、ANS)。 リターン 0 ; }