牛客練習賽1 B 樹題解

2021-10-12 07:16:52 字數 1213 閱讀 6287

演算法分析

解題**

shy有一顆樹,樹有n個結點。有k種不同顏色的染料給樹染色。乙個染色方案是合法的,當且僅當對於所有相同顏色的點對(x,y),x到y的路徑上的所有點的顏色都要與x和y相同。請統計方案數。

第一行兩個整數n,k代表點數和顏色數;

接下來 **n-1 **行,每行兩個整數 **x,y **表示 **x **與y之間存在一條邊;

輸出乙個整數表示方案數**(mod 1e9 + 7)**。

4 3

1 22 3

2 4

39
對於30%的資料,n≤10, k≤3;

對於100%的資料,n,k≤300。

題目的結果與樹的形態無關, 乙個點染上什麼顏色是和前乙個點相關。

一道簡單的dp問題

dp狀態轉移方程:

#include

using

namespace std;

typedef

long

long ll;

const ll mode =

1e9+7;

ll dp[

305]

[305];

intmain()

//dp含義:前i個節點用j種顏色填充的方案數

dp[0]

[0]=

1;//前0個節點用0個顏色填充,就一種方案

for(

int i =

1; i <= n; i++

)for

(int j =

1; j <= k; j++

)//因為最多k個顏色,那麼就可以用1~k種顏色去填充

//那麼方案數就是1~k種顏色的結果總和

ll ans =0;

for(

int i =

1; i <=k; i++

) ans =

(ans + dp[n]

[i])

% mode;

cout << ans << endl;

return0;

}

牛客練習賽 1 B 樹

有一顆樹,有k種不同顏色的染料給樹染色。乙個染色方案是合法的,當且僅當對於所有相同顏色的點對 x,y x,y x,y x xx 到 y yy 的路徑上的所有點的顏色都要與 x xx 和 y yy 相同,請統計方案數 易得乙個節點要麼塗和父節點乙個顏色,要麼塗沒有出現過的顏色 假設我們遍歷到了第 x ...

新生練習賽1 B

acm的學長最近在henu附近supermarket打工。一天之中,他的工作時間是l分鐘。這位學長記性非常好,他已經記住了n位老客戶,其中第i位顧客是在一天開始工作後的ti分鐘到來,並且服務這位顧客需要花費li分鐘。此外當學長為另一位客戶提供服務時,保證不會有任何客戶到達。然鵝,學長想要想要在忙碌中...

牛客練習賽1

a矩陣 題意 給出乙個n m的矩陣。讓你從中發現乙個最大的正方形。使得這樣子的正方形在矩陣 現了至少兩次。輸出最大正方形的邊長。n 500,m 500 題解 考慮暴力 列舉每個矩陣為 n 3 然後判斷兩個矩陣是否相等 n 2 顯然複雜度 如果將矩陣進行hash 然後o 1 判斷兩個矩陣是否相等,那麼...