zoukankan      html  css  js  c++  java
  • 生成树定理

    我在网上找了半天也没找到证明……,这里就简单介绍一下定理内容吧!

    生成树定理,顾名思义,就是用来计算一个简单无向图的生成树个数的,所以要假设一个简单无向图G,点数n,边数m。

    然后定义一个简单无向图G的度数矩阵D[G],它是n*n的矩阵,并且对于其中每一个元素,设该元素位于第i行第j列,均有:

      i==j时,该元素值为i或j的度数。

      i!=j时,该元素值为零。

    再定义一个邻接矩阵A[G],对于每一个元素(i,j),若点i和点j直接相连,则该元素值为1,否则为0。

    然后令C[G]=D[G]-A[G],再取[1,n]中任意一个数k,去掉矩阵C中第i行第i列,剩余一个(n-1)*(n-1)的行列式,该行列式的绝对值即为方案数。

    有一道栗题——SPOJ-HIGH Highways

    题面:自己找

    题解:啥也不说了,AC数++。

    代码:

     1 #include<cmath>
     2 #include<cstdio>
     3 #include<cstdlib>
     4 #include<cstring>
     5 #include<algorithm>
     6 #define N 502
     7 using namespace std;
     8 int T,n,m;
     9 double a[N][N];
    10 const double eps=1e-6;
    11 double gausswork()
    12 {
    13     int now=1;
    14     for(int i=1;i<n;i++)
    15     {
    16         int tmp=now;
    17         for(int j=now+1;j<n;j++)    if(abs(a[j][i])>abs(a[tmp][i]))    tmp=j;
    18         if(tmp!=now)    for(int j=1;j<n;j++)    swap(a[now][j],a[tmp][j]);
    19         if(abs(a[now][i])<eps)    return 0;
    20         for(int j=now+1;j<n;j++)
    21             if(j!=now)
    22             {
    23                 double tmp=a[j][i]/a[now][i];
    24                 for(int k=i;k<n;k++)    a[j][k]-=tmp*a[now][k];
    25             }
    26         now++;
    27     }
    28     double ret=1;
    29     for(int i=1;i<n;i++)    ret=ret*a[i][i];
    30     return abs(ret);
    31 }
    32 int main()
    33 {
    34     scanf("%d",&T);
    35     while(T--)
    36     {
    37         memset(a,0,sizeof(a));
    38         scanf("%d%d",&n,&m);
    39         for(int i=1,ui,vi;i<=m;i++)
    40         {
    41             scanf("%d%d",&ui,&vi);
    42             a[ui][ui]++,a[ui][vi]--;
    43             a[vi][vi]++,a[vi][ui]--;
    44         }
    45         printf("%.0lf
    ",gausswork());
    46     }
    47     return 0;
    48 }
    View Code
  • 相关阅读:
    [转]scrapy中的request.meta
    Item Pipeline
    scrapy spider官方文档
    scrapy选择器主要用法
    scrapy 选择器官方文档
    【bzoj3514】Codechef MARCH14 GERALD07加强版 LCT+可持久化线段树
    【bzoj3813】奇数国 线段树
    【loj6177】「美团 CodeM 初赛 Round B」送外卖2 Floyd+状压dp
    【bzoj4499】线性函数 线段树
    【bzoj1018】[SHOI2008]堵塞的交通traffic 线段树区间合并+STL-set
  • 原文地址:https://www.cnblogs.com/stddddd/p/10356732.html
Copyright © 2011-2022 走看看