树的最小路径覆盖 2019-07-13 ACM学习笔记图论 nexthexonextbutterflyvolantisyearnyiliashokaindigoapollolandscapecactusmateryicarusfluidmaterial 用最少条数的路径覆盖树,这是一个树dp问题 1234567891011121314151617181920212223void dfs(int u,int father){ int sum=0; for(int i=head[u];~i;i=edge[i].nex){ if(edge[i].v==father) continue; dfs(edge[i].v,u); sum+=dp[edge[i].v][0]; } dp[u][0]=sum+1;//子树路径覆盖的答案 dp[u][1]=sum+1; vector<int>update; for(int i=head[u];~i;i=edge[i].nex){ if(edge[i].v==father) continue; update.push_back(-dp[edge[i].v][0]+dp[edge[i].v][1]-1); } sort(update.begin(),update.end()); if(update.size()>=1) { if(update[0]<0) dp[u][0]+=update[0]; if(update[0]<0) dp[u][1]+=update[0]; } if(update.size()>=2){ if(update[1]<0) dp[u][0]+=update[1]; }}// dp[root][0] is min path cover the tree 最后更新时间:2019-07-13 11:48:33 这里可以写作者留言,标签和 hexo 中所有变量及辅助函数等均可调用,示例:<%- page.permalink.replace(/index\.html$/, '') %> 赏 Prev 斯坦纳树 Next cf_468_B