zoukankan      html  css  js  c++  java
  • P3884 [JLOI2009]二叉树问题

    数据范围小,用的暴力搜索法。

    同步前进法。

    const int N=110;
    int fa[N];
    int dep[N],width[N];
    int maxh,maxw;
    int n;
    
    int LCA(int u,int v)
    {
        if(dep[u] < dep[v]) swap(u,v);
    
        while(dep[u] != dep[v]) u=fa[u];
        if(u == v) return v;
    
        while(fa[u] != fa[v])
        {
            u=fa[u];
            v=fa[v];
        }
        return fa[u];
    }
    
    int main()
    {
        cin>>n;
        dep[1]=1;
        width[1]=1;
        for(int i=0;i<n-1;i++)
        {
            int u,v;
            cin>>u>>v;
            fa[v]=u;
            dep[v]=dep[u]+1;
            width[dep[v]]++;
            maxh=max(maxh,dep[v]);
            maxw=max(maxw,width[dep[v]]);
        }
    
        cout<<maxh<<endl<<maxw<<endl;
    
        int u,v;
        cin>>u>>v;
        int lca=LCA(u,v);
        cout<<(dep[u]-dep[lca])*2+dep[v]-dep[lca]<<endl;
        //system("pause");
        return 0;
    }
    

    向上标记法。

    const int N=110;
    int fa[N];
    int dep[N],width[N];
    bool vis[N];
    int maxh,maxw;
    int n;
    
    int LCA(int u,int v)
    {
        vis[u]=true;
        while(fa[u])
        {
            u=fa[u];
            vis[u]=true;
        }
    
        while(!vis[v])
        {
            v=fa[v];
        }
        return v;
    }
    
    int main()
    {
        cin>>n;
        dep[1]=1;
        width[1]=1;
        for(int i=0;i<n-1;i++)
        {
            int u,v;
            cin>>u>>v;
            fa[v]=u;
            dep[v]=dep[u]+1;
            width[dep[v]]++;
            maxh=max(maxh,dep[v]);
            maxw=max(maxw,width[dep[v]]);
        }
    
        cout<<maxh<<endl<<maxw<<endl;
    
        int u,v;
        cin>>u>>v;
        int lca=LCA(u,v);
        cout<<(dep[u]-dep[lca])*2+dep[v]-dep[lca]<<endl;
        //system("pause");
        return 0;
    }
    
  • 相关阅读:
    谷歌火狐浏览器限制的端口
    Web Api 内部数据思考 和 利用http缓存优化 Api
    Web Api 端点设计 与 Oauth
    FI-FBV0
    Others-SAP hybris 介绍
    ABAP-表修改日志存储
    TR-银行通信相关文档
    ABAP-Eclipse ADT中创建ABAP CDS视图
    TR-业务流程图
    FPM-OVP增强实例-银行账户
  • 原文地址:https://www.cnblogs.com/fxh0707/p/14522351.html
Copyright © 2011-2022 走看看