2019年3月11日

bzoj3991 lca+dfs序应用+set综合应用

摘要: /* 给定一棵树,树上会出现宝物,也会有宝物消失 规定如果要收集树上所有宝物,就要选择一个点开始,到每个宝物点都跑一次,然后再回到那个点 现在给定m次修改,每次修改后树上就有一个宝物消失,或者一个宝物出现 请问在这次操作后,按规则跑一次找到所有宝物的最短路径长度 显然按规则跑一次找宝物经过的路径长度,就是从根节点开始dfs一次这些点再回到根节点的路径长度 那么需要将这条路径分解: ... 阅读全文

posted @ 2019-03-11 20:05 zsben 阅读(115) 评论(0) 推荐(0) 编辑

poj3417lca+树上差分

摘要: /* 给定n个点的树,在其中加入m条新边(称为非树边) 现在可以割断一条树边,一条非树边,使图分裂成两个联通块,请问有几种切割方式 对树边进行分情况讨论 如果树边不处在环中,则割断这条树边后可以割断任意条非树边 如果树边仅仅被一个环包含,则割断这条树边后只能割断一条非树边,即环中的那条非树边 如果树边被两个及以上环包含,就不可能有合法的切割方式 那么考虑如何计算树边被... 阅读全文

posted @ 2019-03-11 15:49 zsben 阅读(102) 评论(0) 推荐(0) 编辑

poj3417lca+树上差分

摘要: /* 给定n个点的树,在其中加入m条新边(称为非树边) 现在可以割断一条树边,一条非树边,使图分裂成两个联通块,请问有几种切割方式 对树边进行分情况讨论 如果树边不处在环中,则割断这条树边后可以割断任意条非树边 如果树边仅仅被一个环包含,则割断这条树边后只能割断一条非树边,即环中的那条非树边 如果树边被两个及以上环包含,就不可能有合法的切割方式 那么考虑如何计算树边被... 阅读全文

posted @ 2019-03-11 15:49 zsben 阅读(90) 评论(0) 推荐(0) 编辑

直径上的乱搞 bzoj1999求树直径上的结点+单调队列,bzoj1912负权树求直径+求直径边

摘要: 直径上的乱搞一般要求出这条直径上的点集或者边集 bzoj1999:对直径上的点集进行操作 bzoj1912 负权树求直径(只能用树形dp),然后记录直径上的边来回溯到两端点,同时将直径上的边权变负 阅读全文

posted @ 2019-03-11 13:55 zsben 阅读(202) 评论(0) 推荐(0) 编辑

两种lca的求法:树上倍增,tarjan

摘要: 第一种:树上倍增 f[x,k]表示x的2^k辈祖先,即x向根结点走2^k步达到的结点。 初始条件:f[x][0]=fa[x] 递推式:f[x][k]=f[ f[x][k-1] ][k-1] 一次bfs预处理f数组(nlogn),然后每次询问都可以在(logn)时间内求出x,y的lca 求lca的步骤 阅读全文

posted @ 2019-03-11 00:23 zsben 阅读(286) 评论(0) 推荐(0) 编辑

导航