zoukankan      html  css  js  c++  java
  • 尝试一下LLJ大佬的理论AC大法

    1.BZOJ 3522 Poi2014 Hotel DFS

    给定一棵树,求有多少无序三元组(x,y,z)满足x,y,z互不相等且Dis(x,y)=Dis(y,z)=Dis(x,z)

    枚举中心点,分别dfs,计算答案

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    #define M 5050
    using namespace std;
    struct abcd{
        int to,next;
    }table[M<<1];
    int head[M],tot;
    int n;
    long long ans;
    int temp[M],f[M],g[M];
    void Add(int x,int y)
    {
        table[++tot].to=y;
        table[tot].next=head[x];
        head[x]=tot;
    }
    void DFS(int x,int from,int dpt)
    {
        int i;
        temp[dpt]++;
        for(i=head[x];i;i=table[i].next)
            if(table[i].to!=from)
                DFS(table[i].to,x,dpt+1);
    }
    int main()
    {
        int i,j,x,y;
        cin>>n;
        for(i=1;i<n;i++)
        {
            scanf("%d%d",&x,&y);
            Add(x,y);Add(y,x);
        }
        for(x=1;x<=n;x++)
        {
            memset(f,0,sizeof f);
            memset(g,0,sizeof g);
            for(i=head[x];i;i=table[i].next)
            {
                memset(temp,0,sizeof temp);
                DFS(table[i].to,x,1);
                for(j=1;j<=n;j++)
                {
                    ans+=(long long)g[j]*temp[j];
                    g[j]+=f[j]*temp[j];
                    f[j]+=temp[j];
                }
            }
        }
        cout<<ans<<endl;
        return 0;
    }
    View Code

     

    2.bzoj1912 巡逻

    传送门

     

    3.小奇的仓库

    神奇的树形dp,听昕怡讲了一下,听着就蛋疼。

     

    4.3626: [LNOI2014]LCA

    不应该嘲笑LNOI.....

    很神奇的题,很有 的风格(?)。

    题面

    题解

     

    5 1018: [SHOI2008]堵塞的交通traffic

     线段树维护区间信息

    题面

    题解

     

    6【BZOJ】3319: 黑白树

    题解

     

  • 相关阅读:
    简化单例模式
    static
    单例模式之懒汉模式
    Car race game
    poj-2403
    poj-2612
    poj-1833
    poj--2782
    poj--2608
    poj--3086
  • 原文地址:https://www.cnblogs.com/Achenchen/p/7593781.html
Copyright © 2011-2022 走看看