【洛谷 P3398】仓鼠找sugar(lca)

听了教练的考前须知 蒟蒻紧张的要死 只想做信心题

同时满足:c或者d在x子树里 a或者b在y子树里 其中x=lca(a,b),y=lca(c,d)

#include
#define N 100005
using namespace std;
template
inline void read(T &x)
{
    x=0;
    static char ch=getchar();
    while(!isdigit(ch)) ch=getchar();
    while(isdigit(ch))  x=x*10+ch-'0',ch=getchar();
}
struct Edge
{
    int to,next;
}edge[2*N];
int n,Q,first[N],tot;
inline void addedge(int x,int y)
{
    tot++;
    edge[tot].to=y; edge[tot].next=first[x]; first[x]=tot;
}
int depth[N],father[N],size[N],maxson[N];
void dfs1(int now,int fa)
{
    father[now]=fa;
    depth[now]=depth[fa]+1;
    size[now]=1;
    for(int u=first[now];u;u=edge[u].next)
    {
        int vis=edge[u].to;
        if(vis==fa) continue;
        dfs1(vis,now);
        size[now]+=size[vis];
        if(size[maxson[now]]

转载于:https://www.cnblogs.com/Patrickpwq/articles/9915200.html

你可能感兴趣的:(【洛谷 P3398】仓鼠找sugar(lca))