bzoj 5314 Jsoi2018 潛入行動

2021-08-20 14:41:32 字數 1792 閱讀 7080

description

外星人又雙叒叕要攻打地球了,外星母艦已經向地球航行!這一次,jyy已經聯絡好了**艦隊,打算聯合所有jso

ier抵禦外星人的進攻。在**艦隊就位之前,jyy打算事先了解外星人的進攻計畫。現在,攜帶了監聽裝置的**

已經秘密潛入了外星人的母艦,準備對外星人的通訊實施監聽。外星人的母艦可以看成是一棵n個節點、n-1條邊的

無向樹,樹上的節點用1,2…n編號。jyy的**已經裝備了**模組,可以在外星人母艦中不受限制地活動,可以

神不知鬼不覺地在節點上安裝監聽裝置。如果在節點u安裝監聽裝置,則jyy能夠監聽與u直接相鄰所有的節點的通

信。換言之,如果在節點u安裝監聽裝置,則對於樹中每一條邊(u,v),節點v都會被監聽。特別注意放置在節點u的

監聽裝置並不監聽u本身的通訊,這是jyy特別為了防止外星人察覺部署的戰術。

jyy的**一共攜帶了k個監聽裝置,現在jyy想知道,有多少種不同的放置監聽裝置的方法,能夠使得母艦上所有

節點的通訊都被監聽?為了避免浪費,每個節點至多只能安裝乙個監聽裝置,且監聽裝置必須被用完。

input

輸入第一行包含兩個整數n,k,表示母艦節點的數量n和監聽裝置的數量k。

接下來n-1行,每行兩個整數u,v(1≤u,v≤n),表示樹中的一條邊。

1≤n≤10^5,1≤k≤min

output

輸出一行,表示滿足條件的方案數。

因為答案可能很大,你只需要輸出答案mod 1,000,000,007的餘數即可

sample input

5 3

1 2

2 3

3 4

4 5

sample output

1 樣例解釋

樣例資料是一條鏈

1–2–3–4–5

首先,節點 2和 4必須放置監聽裝置,否則 1,5將無法被監聽(放置的監聽裝置無法監聽它所在的節點)。剩下一

個裝置必須放置在 3號節點以同時監聽 2,4因此在 2,3,4節點放置監聽裝置是唯一合法的方案。

細節好多 無力吐槽..

首先dp的定義也得注意細節 要不沒法轉移..

dp[x][i][0/1][0/1]表示 現在處於x節點已經放置i個監聽 當前位置是否被監聽 以及當前位置是否被子樹監聽 細節直接看**吧

#include

#include

#include

#define ll long long

using namespace std;

const int mod=1e9+7;

inline char gc()

return

*s++;

}inline int

read()

while(isdigit(ch)) x=x

*10+ch-'0',ch=gc();

return

x*f;

}const int n=1e5+10;

struct nodedata[n<<1];

int h[n],n,k,dp[n][110][2][2],g[110][2][2],size[n],num;

inline void dfs(int

x,int fa)

}size[x]+=size[y];

}}int main()dfs(1,0);

printf("%d\n",(dp[1][k][1][1]+dp[1][k][0][1])%mod);

return

0;}

BZOJ5314 JSOI2018 潛入行動

有一說一,這題在洛谷上能評到黑題?但是其實還可以了,鍛鍊細節能力和分析能力吧 題目大意 有n個點,有k個監視器,每個點至多放乙個,被放在點上的監視器可以監控到與他相連的所有點但不包括他自己,求覆蓋到整棵樹並且用完k個監視器的方案數 狀態應該挺好想的 設 dp i j 0 1 0 1 表示在根為 i ...

小店購物 JSOI2008 BZOJ 2260

grant是乙個個體戶老闆,他經營的小店因為其豐富的優惠方案深受附近居民的青睞,生意紅火。小店的優惠方案十分簡單有趣。grant規定 在一次消費過程中,如果您在本店購買了精製油的話,您購買香皂時就可以享受2.00元 塊的 如果您在本店購買了香皂的話,您購買可樂時就可以享受1.50元 聽的 諸如此類的...

BZOJ 4327 JSOI2012 玄武密碼

字尾自動機裸題。藉著這道裸題總結一下字尾自動機的查詢問題。1.查字首 查詢時不跳parent,遇到空節點就跳出。2.查子串 查詢時跳parent,記錄最大ans.3.查次數 lct維護right陣列 4.查不同的串的數目 在建樹時維護,乙個點對答案的貢獻為this max len this pare...