随笔分类 - 图论-LCA
摘要:"题目链接" 考虑建一棵树,使一个生物灭绝时他的子树都会灭绝,显然这样答案就是以每个点为根的子树大小 1. 为什么原图不是一棵树,因为一个生物可能会以多个生物为食,所以按拓扑序来建树,把每个遍历到的点的父亲设为它的所有食物的$LCA$。 因为是按拓扑序来的,所以当遍历到这个生物时,它的所有食物肯定是
阅读全文
摘要:"题目链接" 思维难度0 实现难度7 建出主席树后用两点的状态减去lca和lca父亲的状态,然后在新树上跑第$k$小 cpp include include include using namespace std; const int MAXN = 100010; const int MAXM =
阅读全文
摘要:"题目链接" 题意:给一张无向图和$M$个询问,问$u,v$之间的路径的必经之点的个数。 对图建出圆方树,然后必经之点就是两点路径经过的原点个数,用$(dep[u]+dep[v] dep[LCA] 2)/2+1$即可算出。 什么你不知道圆方树~~(说的跟我知道一样)~~ $APIO2018$出来的黑
阅读全文
摘要:"题目链接" ~~可能是除了《概率论》的最水的黑题了吧~~ 用$Tarjan$缩点(点双联通分量),然后就是树上两点之间的距离了,跑$LCA$就好了。 cpp include include include using namespace std; int s; char ch; inline in
阅读全文


浙公网安备 33010602011771号