luogu P2018 訊息傳遞

2022-05-05 16:39:20 字數 1054 閱讀 9306

一道顯而易見的樹形dp

每個人都有當根節點的機會

然後先告訴需要花費時間長的,再告訴短的

轉移方程

dp[u]=max(dp[u],dp[v]+i−1)

#include#include

#include

using

namespace

std;

#define maxn 1010

#define inf 999999999

intn;

intdp[maxn];

inthead[maxn],cnt;

int www[maxn],minn =inf;

struct

edge edge[maxn * 2

];int cmp(int a,int

b) void add(int x,int

y) void dfs(int u,int

fa) ;

int total = 0

;

for(int i = head[u]; i; i =edge[i].nxt)

}sort(son + 1,son + total + 1,cmp);//

先傳給花時間長的

for(int i = 1; i <= total; i++)

dp[u] = max(dp[u],son[i] + i - 1);//

轉移方程,兒子到根節點的距離i再減1

dp[u] += 1;}

intmain()

for(int i = 1; i <= n; i++)

printf(

"%d\n

",minn);

for(int i = 1; i <= n; i++)

if(minn ==www[i])

printf(

"%d

",i);

return0;

}

集訓回來,從今天開始瘋狂補部落格了

做了蠻多題,都想寫寫題解加深印象,希望不會鴿

luogu P2018 訊息傳遞

2017 09 13 巴蜀國的社會等級森嚴,除了國王之外,每個人均有且只有乙個直接上級,當然國王沒有上級。如果a是b的上級,b是c的上級,那麼a就是c的上級。絕對不會出現這樣的關係 a是b的上級,b也是a的上級。最開始的時刻是0,你要做的就是用1單位的時間把乙個訊息告訴某乙個人,讓他們自行散布訊息。...

P2018 訊息傳遞 dp

巴蜀國的社會等級森嚴,除了國王之外,每個人均有且只有乙個直接上級,當然國王沒有上級。如果a是b的上級,b是c的上級,那麼a就是c的上級。絕對不會出現這樣的關係 a是b的上級,b也是a的上級。最開始的時刻是0,你要做的就是用1單位的時間把乙個訊息告訴某乙個人,讓他們自行散布訊息。在任意乙個時間單位中,...

洛谷P2018 訊息傳遞

巴蜀國的社會等級森嚴,除了國王之外,每個人均有且只有乙個直接上級,當然國王沒有上級。如果a是b的上級,b是c的上級,那麼a就是c的上級。絕對不會出現這樣的關係 a是b的上級,b也是a的上級。最開始的時刻是0,你要做的就是用1單位的時間把乙個訊息告訴某乙個人,讓他們自行散布訊息。在任意乙個時間單位中,...