zoukankan      html  css  js  c++  java
  • BZOJ 4390 Max Flow

    同运输计划。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #define maxv 50050
    #define maxe 100500
    using namespace std;
    struct edge
    {
        int v,nxt;
    }e[maxe];
    int n,k,x,y,val[maxv],anc[maxv][20],ans=0,dis[maxv],g[maxv],nume=0;
    void addedge(int u,int v)
    {
        e[++nume].v=v;
        e[nume].nxt=g[u];
        g[u]=nume;
    }
    void dfs1(int x)
    {
        for (int i=g[x];i;i=e[i].nxt)
        {
            int v=e[i].v;
            if (v!=anc[x][0])
            {
                anc[v][0]=x;dis[v]=dis[x]+1;
                dfs1(v);
            }
        }
    }
    void get_table()
    {
        for (int e=1;e<=19;e++)
            for (int i=1;i<=n;i++)
                anc[i][e]=anc[anc[i][e-1]][e-1];
    }
    int lca(int x,int y)
    {
         if (dis[x]<dis[y]) swap(x,y);
         for (int e=19;e>=0;e--)
         {
             if ((dis[anc[x][e]]>=dis[y]) && (anc[x][e]))
                x=anc[x][e];
         }
         if (x==y) return x;
         for (int e=19;e>=0;e--)
         {
             if (anc[x][e]!=anc[y][e])
             {
                 x=anc[x][e];
                 y=anc[y][e];
             }
         }
         return anc[x][0];
    }
    void dfs2(int x)
    {
        for (int i=g[x];i;i=e[i].nxt)
        {
            int v=e[i].v;
            if (v!=anc[x][0])
            {
               dfs2(v);
               val[x]+=val[v];
            }
        }
        ans=max(ans,val[x]);
    }
    int main()
    {
         scanf("%d%d",&n,&k);
        for (int i=1;i<=n-1;i++)
        {
            scanf("%d%d",&x,&y);
            addedge(x,y);addedge(y,x);
        }
        dfs1(1);get_table();
        for (int i=1;i<=k;i++)
        {
            scanf("%d%d",&x,&y);
            int t=lca(x,y);
            val[x]++;val[y]++;val[t]--;val[anc[t][0]]--;
        }
        dfs2(1);
        printf("%d
    ",ans);
        return 0;
    }
  • 相关阅读:
    java上传文件依赖的jar
    maven创建web项目很慢
    人才的成长与工作环境
    msdtc
    阿里巴巴的ChaosBlade
    集成电路
    晶体管
    PHPStorm如何快捷提交代码到服务器
    PHP 7新特性
    题(3)
  • 原文地址:https://www.cnblogs.com/ziliuziliu/p/6128527.html
Copyright © 2011-2022 走看看