• 模板


    需要注意:

      strlen() 时间很快然而不是o(1),不要偷懒!

      树状数组要判0

      n=100000 质数个数9592 u[i]!=0个数60794  每个数的u[i]非0个数 778581   约数个数1166750

      n=1000000 质数个数78498 u[i]!=0个数607926 每个数的u[i]非0个数:9185685  约数个数13970034

      数据要保证全部读进来,不要中途break或者return

    模板,bitset,sap,zkw,fft,ntt,点分支,斯坦纳树

    二分图概念整理 

    tarjan

    双联通

    void tarjan(int x)
    {
        dfn[x]=low[x]=++tsum;
        int son=0;
        repedge(i,x) {
            if (use[i]) continue;
            use[i]=use[i^1]=1;
            int too=e[i].t;
            if (!dfn[too]) {
                tarjan(too);
                low[x]=min(low[x],low[too]);
                if (dfn[x]<low[too]) {
                    ans++;
                    cur[i]=cur[i^1]=1;
                }
            }
            else
                low[x]=min(low[x],dfn[too]);
        }
    }

    强连通

    void tarjan(int x)
    {
        dfn[x]=low[x]=++tsum;
        vis[x]=1;
        pp.push(x);
        repedge(i,x) {
            int too=e[i].t;
            if (!dfn[too]) {
                tarjan(too);
                low[x]=low[too]<low[x]?low[too]:low[x];
            }
            else
                if (vis[too] && dfn[too]<low[x]) low[x]=dfn[too];
        }
        if (low[x]==dfn[x]) {
            ++tot;
            numi[tot]=numo[tot]=0;
            int j;
            do {
                j=pp.top();pp.pop();
                vis[j]=0;
                scc[j]=tot;
            }while (j!=x);
        }
    }
    View Code

     dfn也可以作为深度的标志,进行lca时的次序判断

    二分图模型

    p.s  n==1注意 二分图判断用for+bfs

    黑白染色:1*2棋盘型,树结构。

    【无向图的最大独立数】: 从V个顶点中选出k个顶,使得这k个顶互不相邻。 那么最大的k就是这个图的最大独立数。
    【无向图的最大团】: 从V个顶点选出k个顶,使得这k个顶构成一个完全图,即该子图任意两个顶都有直接的边。
    【最小路径覆盖(原图不一定是二分图,但必须是有向图,拆点构造二分图)】:在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联。最小路径覆盖 = |V| - 最大匹配数
    【最小边覆盖(原图是二分图)】:在图中找一些边,使之覆盖了图中所有顶点,且任何一个顶点有且只有一条边与之关联。最小边覆盖 = 最大独立集 = |V| - 最大匹配数
    【最小顶点覆盖】:用最少的点(左右两边集合的点)让每条边都至少和其中一个点关联。

     白书中的输出方案

  • 相关阅读:
    table表框去掉相邻的间隔
    各种日期格式化返回
    校验金额、大小写字母、大写字母、合法uri、email
    vue js校验金钱、数字
    vue-router 动态添加 路由
    可视化-echarts流向图制作
    HTTP状态码
    二分查找
    编程语言的变量为啥不能是数字开头
    python位运算
  • 原文地址:https://www.cnblogs.com/Macaulish/p/7404197.html
Copyright © 2020-2023  润新知