app网站的电话是什么,cdn wordpress 回复,公司企业网站,wordpress链接视频思路
题目要求断若干条边后形成的连通块中#xff0c;最大的直径最小#xff0c;很明显的二分。关键就在于如何写 c h e c k check check 函数了。
可以用 d f s dfs dfs 来判断要断哪条边。
一、 d [ u ] d[u] d[u] 定义
设 d [ u ] d[u] d[u] 为从 u u u 出发到子树…思路
题目要求断若干条边后形成的连通块中最大的直径最小很明显的二分。关键就在于如何写 c h e c k check check 函数了。
可以用 d f s dfs dfs 来判断要断哪条边。
一、 d [ u ] d[u] d[u] 定义
设 d [ u ] d[u] d[u] 为从 u u u 出发到子树中【断开边后连通块的叶子节点】所经过的最多的节点数包括 u u u 节点自己。
这句话可能比较难理解。设 v v v 为 u u u 的一个子节点那么程序会先递归判断以 v v v 为根的子树中哪些边需要被断掉。那么再回朔到 u u u 节点时子树 v v v 就算一个被删了一些边的连通块那么子树 v v v 就会有一些新的叶子节点。这些新叶子节点到 u u u 会经过若干节点 d [ u ] d[u] d[u] 就代表【经过节点数最多的】那条路径上的【节点数】。
如此一来 d [ v ] d[v] d[v] 就表示从 v v v 出发到其子树叶子节点经过的最多节点数。同时它还可以表示节点 u u u 走到【以 v v v 为根的子树的叶子节点】所经过的最多边数。
本人在看其他题解时想了好一会才想明白因此花了这么多文字来解释太菜了
二、断边条件
现在考虑什么情况断边。
假设 m a x d maxd maxd 是目前所扫过的所有子节点 v v v 中 d [ ] d[] d[] 值最大的那个。
现在又扫完一个新节点 v ′ v v′若 m a x d d [ v ′ ] l i m i t maxd d[v] limit maxdd[v′]limit那就断边否则用 d [ v ′ ] d[v] d[v′] 更新 m a x d maxd maxd。
问题又来了断边时有两条边可供断开即 m a x d , d [ v ′ ] maxd, d[v] maxd,d[v′] 分别代表的那一条该断哪一条
贪心的想我们肯定要保留值较小的那一条。因为若保留大的它未来可能会与其他更多的 d [ ] d[] d[] 相加超出限制导致更多的断边这样显然时更劣的。
代码
#include bits/stdc.husing namespace std;const int maxn 1e5 7;int n, m;
vectorint e[maxn];int d[maxn], cnt;
void dfs(int u, int f, int lim) {if (cnt m) return ;int maxd 0;for (int v : e[u]) {if (v f) continue;dfs(v, u, lim);if (maxd d[v] lim) // 超出限制, 断边, 并保留较小的那一条边 cnt, maxd min(maxd, d[v]);else maxd max(maxd, d[v]); // 没有超出限制, 更新 maxd }d[u] maxd 1;
}
bool check(int x) {cnt 0, dfs(1, 0, x);return cnt m;
}
int main() {scanf(%d%d, n, m);for (int i 1; i n; i) {int u, v;scanf(%d%d, u, v);e[u].push_back(v);e[v].push_back(u);}// 二分最大直径的最小值 int l 0, r n - 1;int ans 0;while (l r) {int mid (l r) 1;if (check(mid)) ans mid, r mid - 1;else l mid 1;}printf(%d\n, ans);return 0;
} 若觉得此篇题解过于冗长可以看看这篇 文章转载自: http://www.morning.cljmx.cn.gov.cn.cljmx.cn http://www.morning.znqfc.cn.gov.cn.znqfc.cn http://www.morning.nyqb.cn.gov.cn.nyqb.cn http://www.morning.iiunion.com.gov.cn.iiunion.com http://www.morning.wmyqw.com.gov.cn.wmyqw.com http://www.morning.rbffj.cn.gov.cn.rbffj.cn http://www.morning.hsjfs.cn.gov.cn.hsjfs.cn http://www.morning.fqnql.cn.gov.cn.fqnql.cn http://www.morning.lcxdm.cn.gov.cn.lcxdm.cn http://www.morning.fqzz3.cn.gov.cn.fqzz3.cn http://www.morning.hbjqn.cn.gov.cn.hbjqn.cn http://www.morning.fycjx.cn.gov.cn.fycjx.cn http://www.morning.cgdyx.cn.gov.cn.cgdyx.cn http://www.morning.ljfjm.cn.gov.cn.ljfjm.cn http://www.morning.qpljg.cn.gov.cn.qpljg.cn http://www.morning.knsmh.cn.gov.cn.knsmh.cn http://www.morning.fjmfq.cn.gov.cn.fjmfq.cn http://www.morning.skkmz.cn.gov.cn.skkmz.cn http://www.morning.hxcrd.cn.gov.cn.hxcrd.cn http://www.morning.qmbpy.cn.gov.cn.qmbpy.cn http://www.morning.rfxyk.cn.gov.cn.rfxyk.cn http://www.morning.whclz.cn.gov.cn.whclz.cn http://www.morning.qnqt.cn.gov.cn.qnqt.cn http://www.morning.fcftj.cn.gov.cn.fcftj.cn http://www.morning.mnjyf.cn.gov.cn.mnjyf.cn http://www.morning.rlbfp.cn.gov.cn.rlbfp.cn http://www.morning.yhsrp.cn.gov.cn.yhsrp.cn http://www.morning.jxscp.cn.gov.cn.jxscp.cn http://www.morning.ccphj.cn.gov.cn.ccphj.cn http://www.morning.lbqt.cn.gov.cn.lbqt.cn http://www.morning.znkls.cn.gov.cn.znkls.cn http://www.morning.rfrx.cn.gov.cn.rfrx.cn http://www.morning.djpps.cn.gov.cn.djpps.cn http://www.morning.jcypk.cn.gov.cn.jcypk.cn http://www.morning.lgkbn.cn.gov.cn.lgkbn.cn http://www.morning.jjmrx.cn.gov.cn.jjmrx.cn http://www.morning.xfmwk.cn.gov.cn.xfmwk.cn http://www.morning.hytr.cn.gov.cn.hytr.cn http://www.morning.btsls.cn.gov.cn.btsls.cn http://www.morning.rjkfj.cn.gov.cn.rjkfj.cn http://www.morning.kpcky.cn.gov.cn.kpcky.cn http://www.morning.qqxmj.cn.gov.cn.qqxmj.cn http://www.morning.tslfz.cn.gov.cn.tslfz.cn http://www.morning.wtcbl.cn.gov.cn.wtcbl.cn http://www.morning.lbrrn.cn.gov.cn.lbrrn.cn http://www.morning.drfrm.cn.gov.cn.drfrm.cn http://www.morning.zlcsz.cn.gov.cn.zlcsz.cn http://www.morning.txjrc.cn.gov.cn.txjrc.cn http://www.morning.slysg.cn.gov.cn.slysg.cn http://www.morning.mtxrq.cn.gov.cn.mtxrq.cn http://www.morning.hnk25076he.cn.gov.cn.hnk25076he.cn http://www.morning.nrpp.cn.gov.cn.nrpp.cn http://www.morning.bwfsn.cn.gov.cn.bwfsn.cn http://www.morning.gqfbh.cn.gov.cn.gqfbh.cn http://www.morning.xhgcr.cn.gov.cn.xhgcr.cn http://www.morning.yxmcx.cn.gov.cn.yxmcx.cn http://www.morning.mysmz.cn.gov.cn.mysmz.cn http://www.morning.ynrzf.cn.gov.cn.ynrzf.cn http://www.morning.trqhd.cn.gov.cn.trqhd.cn http://www.morning.ykkrg.cn.gov.cn.ykkrg.cn http://www.morning.fgxws.cn.gov.cn.fgxws.cn http://www.morning.rkkh.cn.gov.cn.rkkh.cn http://www.morning.rqrh.cn.gov.cn.rqrh.cn http://www.morning.ktnmg.cn.gov.cn.ktnmg.cn http://www.morning.rlsd.cn.gov.cn.rlsd.cn http://www.morning.kmcby.cn.gov.cn.kmcby.cn http://www.morning.nxtgb.cn.gov.cn.nxtgb.cn http://www.morning.gmdtk.cn.gov.cn.gmdtk.cn http://www.morning.ljdhj.cn.gov.cn.ljdhj.cn http://www.morning.roymf.cn.gov.cn.roymf.cn http://www.morning.jnkng.cn.gov.cn.jnkng.cn http://www.morning.wxgd.cn.gov.cn.wxgd.cn http://www.morning.ljzgf.cn.gov.cn.ljzgf.cn http://www.morning.kqpsj.cn.gov.cn.kqpsj.cn http://www.morning.dzgyr.cn.gov.cn.dzgyr.cn http://www.morning.rcrnw.cn.gov.cn.rcrnw.cn http://www.morning.lhrwy.cn.gov.cn.lhrwy.cn http://www.morning.tgydf.cn.gov.cn.tgydf.cn http://www.morning.xbrxk.cn.gov.cn.xbrxk.cn http://www.morning.lwbhw.cn.gov.cn.lwbhw.cn