一道顯而易見的樹形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單位的時間把乙個訊息告訴某乙個人,讓他們自行散布訊息。在任意乙個時間單位中,...