喵哈哈村與嘩啦啦村的大戰(四)(樹形DP)

2021-07-29 17:05:47 字數 787 閱讀 2662

描述喵哈哈村因為和嘩啦啦村爭奪稀有的水晶資源,展開了激烈的戰鬥!

喵哈哈村的部落可以視為由n個節點組成,其中有n-1條邊連線這n個節點,使得任意兩個節點都會有一條路徑相連線。每個節點上都有乙個點權a[i]。

如果說存在一條路徑上的權值滿足非嚴格的單調遞增或者非嚴格的單調遞減的話,就說這條路徑是一條好路徑。

現在問題來了,給你一棵樹,問你這棵樹上有多少條路徑是好路徑。

輸入本題包含若干組測試資料。

第一行乙個n,表示有n個節點。

第二行n個整數a[i],表示節點的權值。

接下來n-1行每行兩個整數x,y。表示x,y節點之間有一條邊相互連線。

滿足:1<=n<=100000 1<=a[i]<=1e9 1<=x,y<=n

輸出輸出好路徑的個數。

樣例輸入1

複製

4

1 7 1 9

1 31 4

2 1

樣例輸出1

5

題目:題解:

#include#include#includeusing namespace std;

#define ll long long

vectorg[100005];

int val[100005];

ll dp[100005][3], ans;

void sech(int u, int p)

ans += dp[u][1]+dp[u][0]-dp[u][2];

for(i=0;ival[v])

else if(val[u]

喵哈哈村與嘩啦啦村的大戰

描述喵哈哈村因為和嘩啦啦村爭奪稀有的水晶資源,展開了激烈的戰鬥!喵哈哈村裡面有n個戰士,這些戰士每個人一開始擁有a i 的戰鬥力,現在每個戰士可以被艾爾之光強化三次,每次強化有p的概率增加一點戰鬥力,反之會有 1 p 的概率降低一點戰鬥力,當然戰鬥力不可能降為負數。現在問題來了,對於喵哈哈村的n個戰...

嘩啦啦村的刁難 4

描述嘩啦啦村作為喵哈哈村的對頭,於是他們準備給喵哈哈村乙個好看。嘩啦啦村的四長老 四先生,就提出了以下問題 給你n條邊,讓你從裡面選出三條邊,組成乙個三角形,問你這個三角形最大的面積可以為多少?如果無論如何都不能組成三角形,輸出 1。輸入第1行 乙個整數n,表示邊的個數。第2行,n個整數,表示每條邊...

喵哈哈村的狼人殺大戰 5

描述 喵哈哈村最近熱衷於玩乙個叫做狼人殺的遊戲!沈寶寶同學今天他抽到的是狼人的身份,按照他的一貫玩法,他喜歡一開始就自爆,讓大家都不能說話,可謂心狠手辣。於是他早早的就出去了。但是他現在很無聊,於是他出了一道題給自己玩。如果乙個數的二進位制表示中有k個1的話,那麼這個就是就是k th數。比如有10 ...