• 害怕忘记简单写一点:
  • 无向图的生成树计数:https://www.cnblogs.com/zj75211/p/8039443.html   (*ZJ学长 ORZ )
  • 有向图的欧拉回路计数:https://blog.csdn.net/john123741/article/details/76586690
  • 连通图$G = (V,E)$,欧拉回路条数$ec(G)$,$t_{s}$为有向图以$s$为根的树(内或外)个数,;
  • 令$N_{x}(K)$为矩阵$K$去掉$x$阶的主子式,省略$x$表任意一阶,
  • 无向图的生成树:

  • 令$K = D - A$,D为度数矩阵,$A$为邻接矩阵;
  • 无向图生成树个数$t = det(N(K))$
  • 有向图的生成树:

  • 分内向(边由叶子指向根)和外向(由根指向叶子);
  • 外向树:$K = D - A$,$D$为入度矩阵,$A$为邻接矩阵;
  • $t_{s} = det(N_{s}(K))$;
  • 内向树:$K = D - A$,$D$为出度矩阵,$A$为邻接矩阵;
  • 同样有$t_{s} = det(N_{s}(K))$;
  • 有向图的欧拉回路:

  • 如果每个点出度和入度不相等为0;
  • $deg(u)$表示每个点的度数=出度=入度,以s为起点,$t_{s}$指外向树;
  • $ec_{s}(G) \ =  \  t_{s}  \  \Pi_{u \in V} (\deg(u)-1)!$
  • 另外我发现其实这里的$t_{s}$的$s$可以换成任意点,也就是说有欧拉回路的图所有点的外向树个数都是一样的不知道对不对??
  • 如果边的环同构不算一种方案再乘上一个起点度数$deg(s)$;
  • 所以大家的式子会有些小差异就是因为这个;
  • 放一个裸题bzoj3659:
  •  #include<bits/stdc++.h>
    using namespace std;
    const int N=,M=,mod=;
    int n,m,fac[M],deg[N],a[N][N];
    int pw(int x,int y){
    int re=;
    for(;y;y>>=,x=1ll*x*x%mod){
    if(y&)re=1ll*re*x%mod;
    }
    return re;
    }
    int gauss(){
    int fg=,re=;
    for(int i=;i<n;++i){
    int pos=i;
    for(int j=i;j<n;++j)if(a[j][i]){
    pos=j;break;
    }
    if(pos!=i){
    fg^=;
    for(int j=i;j<n;++j)swap(a[i][j],a[pos][j]);
    }
    re=1ll*re*a[i][i]%mod;
    int tmp = pw(a[i][i],mod-);
    for(int j=i;j<n;j++)a[i][j]=1ll*a[i][j]*tmp%mod;
    for(int j=i+;j<n;++j)
    for(int k=n-;k>=i;--k)a[j][k]=(a[j][k]-1ll*a[j][i]*a[i][k]%mod+mod)%mod;
    }
    if(fg)re=mod-re;
    return (re+mod)%mod;
    }
    int main(){
    freopen("bzoj3659.in","r",stdin);
    freopen("bzoj3659.out","w",stdout);
    for(int i=fac[]=;i<=2e5;++i)fac[i]=1ll*fac[i-]*i%mod;
    while(~scanf("%d",&n)&&n){
    for(int i=;i<=n;++i){
    for(int j=;j<=n;++j)a[i][j]=;
    }
    for(int i=,s;i<=n;++i){
    scanf("%d",&s);
    deg[i]=s;
    for(int j=,x;j<=s;++j){
    scanf("%d",&x);
    if(i!=x)a[i][x]--,a[i][i]++;
    }
    }
    if(n==){printf("%d\n",fac[deg[]]);continue;}
    int ans = gauss();
    for(int i=;i<=n;++i)ans=1ll*ans*fac[deg[i]-]%mod;
    ans = 1ll * deg[] * ans %mod;
    printf("%d\n",ans);
    }
    return ;
    }

    bzoj3659

  • 未完待续。。。。。。。。。。。。。。。。。。

【学习笔记】BEST定理的更多相关文章

  1. poj1265&&2954 [皮克定理 格点多边形]【学习笔记】

    Q:皮克定理这种一句话的东西为什么还要写学习笔记啊? A:多好玩啊... PS:除了蓝色字体之外都是废话啊...  Part I 1.顶点全在格点上的多边形叫做格点多边形(坐标全是整数) 2.维基百科 ...

  2. 【学习笔记】Polya定理

    笔者经多番周折终于看懂了\(\text{Burnside}\)定理和\(\text{Polya}\)定理,特来写一篇学习笔记来记录一下. 群定义 定义:群\((G,·)\)是一个集合与一个运算·所定义 ...

  3. Windows录音API学习笔记(转)

    源:Windows录音API学习笔记 Windows录音API学习笔记 结构体和函数信息  结构体 WAVEINCAPS 该结构描述了一个波形音频输入设备的能力. typedef struct { W ...

  4. [学习笔记] 多项式与快速傅里叶变换(FFT)基础

    引入 可能有不少OIer都知道FFT这个神奇的算法, 通过一系列玄学的变化就可以在 $O(nlog(n))$ 的总时间复杂度内计算出两个向量的卷积, 而代码量却非常小. 博主一年半前曾经因COGS的一 ...

  5. 数论算法 剩余系相关 学习笔记 (基础回顾,(ex)CRT,(ex)lucas,(ex)BSGS,原根与指标入门,高次剩余,Miller_Rabin+Pollard_Rho)

    注:转载本文须标明出处. 原文链接https://www.cnblogs.com/zhouzhendong/p/Number-theory.html 数论算法 剩余系相关 学习笔记 (基础回顾,(ex ...

  6. 概率图模型学习笔记:HMM、MEMM、CRF

    作者:Scofield链接:https://www.zhihu.com/question/35866596/answer/236886066来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...

  7. OI数学 简单学习笔记

    基本上只是整理了一下框架,具体的学习给出了个人认为比较好的博客的链接. PART1 数论部分 最大公约数 对于正整数x,y,最大的能同时整除它们的数称为最大公约数 常用的:\(lcm(x,y)=xy\ ...

  8. OI知识点|NOIP考点|省选考点|教程与学习笔记合集

    点亮技能树行动-- 本篇blog按照分类将网上写的OI知识点归纳了一下,然后会附上蒟蒻我的学习笔记或者是我认为写的不错的专题博客qwqwqwq(好吧,其实已经咕咕咕了...) 基础算法 贪心 枚举 分 ...

  9. Windows录音API学习笔记

    Windows录音API学习笔记 结构体和函数信息  结构体 WAVEINCAPS 该结构描述了一个波形音频输入设备的能力. typedef struct { WORD      wMid; 用于波形 ...

  10. 我的Android进阶之旅------>Android中编解码学习笔记

    编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...

随机推荐

  1. JS模块化样例

    var fn_pageBtn = (function(){ var m1 = function(){ alert(1); }; var m2 = function(){ alert(2); }; re ...

  2. 《Java学习笔记JDK8》学习总结

    chapter 6   继承与多态 6.1何谓继承 1.继承的定义:继承就是避免多个类间重复定义共同行为. 2.总结:教材中通过设计一款RPG游戏的部分代码向我们展示了“重复”程序代码的弊端,为了改进 ...

  3. 冲刺One之站立会议2

    在确定了总体目标之后,我们先决定了实现的具体功能,包括一个登陆界面,一个聊天室的主界面和服务器端的内容.我们今天完成了一小部分内容,把每个内容的主体框架搭建了起来. 效果如下图所示: 燃尽图2

  4. struts2封装请求参数

    利用struts2框架进行将页面请求的参数封装有三种方法 第一种(不推荐) 就是动作类和bean中结合在一起,这样方法比较简单,但是很混乱. 代码: package com.example.actio ...

  5. Struts2框架学习

    Struts功能详解——ActionMapping对象 ActionMapping描述了struts中用户请求路径和Action的映射关系,在struts中每个ActionMapping都是通过pat ...

  6. Java jdbc链接 mySQL 写的crud

    1.JDBC(Java Data Base Connectivity java数据库连接)概念: 是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编 ...

  7. Apollo配置名词-学习1

    文章:Apollo分布式配置中心部署以及使用 部署环境为DEV(开发环境).FAT(测试环境).UAT(预生产).PRO(生产)

  8. python learning OOP2.py

    class Student(object): pass s = Student() s.name = 'Chang' # 给一个实例动态绑定一个属性 print(s.name) def set_age ...

  9. java集合LinkedList

    基于jdk_1.8.0 关于List,主要是有序的可重复的数据结构.jdk主要实现类有ArrayList(底层使用数组).LinkedList(底层使用双向链表) LinkedList: (一)继承关 ...

  10. lintcode-517-丑数

    517-丑数 写一个程序来检测一个整数是不是丑数. 丑数的定义是,只包含质因子 2, 3, 5 的正整数.比如 6, 8 就是丑数,但是 14 不是丑数以为他包含了质因子 7. 注意事项 可以认为 1 ...