牛客練習賽62 C 牛牛染顏色(樹形dp)

2021-10-24 19:25:51 字數 1190 閱讀 6561

題意:

給出一棵樹,要將樹上的點染成白色或者黑色,有乙個限制條件,任意兩個黑色的點的lca的顏色也必須是黑色,求染色的方案數。

題解:

設dp[i]表示以i為根節點的子樹的至少有乙個黑點的方案數,空集就是dp[i]+1

1.若點u為黑點,那麼子節點怎麼染色都可以,dp[u]=∏(dp[v]+1)

2.若u為白色的點,那麼子節點至少有乙個黑點,dp[u]+=dp[v]

最後答案就是ans=dp[1]+1;

**:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define iss ios::sync_with_stdio(false)

using

namespace std;

typedef

unsigned

long

long ull;

typedef

long

long ll;

const

int mod=

1e9+7;

const

int maxn=

1e6+5;

int head[maxn]

;int cnt=0;

ll dp[maxn]

;struct node

e[maxn<<1]

;void

add(

int u,

int v)

void

dfs(

int u,

int f)

dp[u]

=sum1;

dp[u]

=(dp[u]

+sum2)

%mod;

}int

main()

dfs(1,

-1);

ll ans=

(dp[1]

+1)%mod;

printf

("%lld\n"

,ans)

;}

牛客練習賽62

傳送門 沒參加這場比賽,賽後做了下de題,還是寫下題解吧。題意 牛牛和小青蛙froggy是好朋友。牛牛有 n 種很大的數,每種數有無限個,牛牛可以從這些數中任選若干個 至少1個 並把它們拼接起來,拼接順序任意,所有可以被這樣拼接起來的數被成為 呱數 如果乙個 呱數 還滿足它是 p 的倍數,牛牛稱它為...

牛客練習賽68 A 牛牛的Mex

傳送門給乙個0 n 1的排列,q個詢問,詢問區間的mex。mex定義為最小未出現的自然數。我們隊三個人看到這題第一反應上莫隊,jhlp哈哈哈哈 然後掏出莫隊板子火速a了 我是賽後再來回顧的,發現由於這題陣列比較特殊是有更符合這道題背景的做法的。首先考慮莫隊做法 莫隊的話首先要對詢問區間排個序,然後主...

牛客練習賽63 B牛牛的魚缸

題目描述 牛牛有乙個長為l,寬為1,高為h的魚缸,現在他想要在魚缸中盛一些水。他想要知道這個魚缸最多能夠放多少水。當然這個問題太過於簡單,所以牛牛將這個魚缸放到了乙個長為l,高為h的斜坡上面,如圖所示,魚缸寬度為1的這條邊緊緊靠在斜坡與地面的交界線上。在不允許移動魚缸與斜坡的情況下。魚缸最多能夠放多...