【学习笔记】BEST定理
- 害怕忘记简单写一点:
- 无向图的生成树计数: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定理的更多相关文章
- poj1265&&2954 [皮克定理 格点多边形]【学习笔记】
Q:皮克定理这种一句话的东西为什么还要写学习笔记啊? A:多好玩啊... PS:除了蓝色字体之外都是废话啊... Part I 1.顶点全在格点上的多边形叫做格点多边形(坐标全是整数) 2.维基百科 ...
- 【学习笔记】Polya定理
笔者经多番周折终于看懂了\(\text{Burnside}\)定理和\(\text{Polya}\)定理,特来写一篇学习笔记来记录一下. 群定义 定义:群\((G,·)\)是一个集合与一个运算·所定义 ...
- Windows录音API学习笔记(转)
源:Windows录音API学习笔记 Windows录音API学习笔记 结构体和函数信息 结构体 WAVEINCAPS 该结构描述了一个波形音频输入设备的能力. typedef struct { W ...
- [学习笔记] 多项式与快速傅里叶变换(FFT)基础
引入 可能有不少OIer都知道FFT这个神奇的算法, 通过一系列玄学的变化就可以在 $O(nlog(n))$ 的总时间复杂度内计算出两个向量的卷积, 而代码量却非常小. 博主一年半前曾经因COGS的一 ...
- 数论算法 剩余系相关 学习笔记 (基础回顾,(ex)CRT,(ex)lucas,(ex)BSGS,原根与指标入门,高次剩余,Miller_Rabin+Pollard_Rho)
注:转载本文须标明出处. 原文链接https://www.cnblogs.com/zhouzhendong/p/Number-theory.html 数论算法 剩余系相关 学习笔记 (基础回顾,(ex ...
- 概率图模型学习笔记:HMM、MEMM、CRF
作者:Scofield链接:https://www.zhihu.com/question/35866596/answer/236886066来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...
- OI数学 简单学习笔记
基本上只是整理了一下框架,具体的学习给出了个人认为比较好的博客的链接. PART1 数论部分 最大公约数 对于正整数x,y,最大的能同时整除它们的数称为最大公约数 常用的:\(lcm(x,y)=xy\ ...
- OI知识点|NOIP考点|省选考点|教程与学习笔记合集
点亮技能树行动-- 本篇blog按照分类将网上写的OI知识点归纳了一下,然后会附上蒟蒻我的学习笔记或者是我认为写的不错的专题博客qwqwqwq(好吧,其实已经咕咕咕了...) 基础算法 贪心 枚举 分 ...
- Windows录音API学习笔记
Windows录音API学习笔记 结构体和函数信息 结构体 WAVEINCAPS 该结构描述了一个波形音频输入设备的能力. typedef struct { WORD wMid; 用于波形 ...
- 我的Android进阶之旅------>Android中编解码学习笔记
编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...
随机推荐
- NO.4:自学python之路------内置方法、装饰器、迭代器
引言 是时候开始新的Python学习了,最近要考英语,可能不会周更,但是尽量吧. 正文 内置方法 Python提供给了使用者很多内置方法,可以便于编程使用.这里就来挑选其中大部分的内置方法进行解释其用 ...
- mybatis学习------打包xml映射文件
编译mybatis时,idea不会将mybatis的xml映射文件一起打包进jar,即在编译好的jar包里缺少mybatis映射文件,导致网站加载失败 为解决这个问题,可在mybatis对应modul ...
- React 之容器组件和展示组件相分离解密
Redux 的 React 绑定库包含了 容器组件和展示组件相分离 的开发思想.明智的做法是只在最顶层组件(如路由操作)里使用 Redux.其余内部组件仅仅是展示性的,所有数据都通过 props 传入 ...
- 20181023-11 Alpha发布
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2283 文案: Learning by Playing 界面清爽明快,UI ...
- java的内存管理机制
1.内存区域的分类 栈内存:基本类型变量和对象的引用,优势在于存取速度快 堆内存:new创建的对象和数组以及对象的实例化变量,优势在于动态分配内存,但是存取速度相对较慢 2.不同类型的内存分配 (1) ...
- 第10章 系统级I/O(下)
10.7 I/O重定向 Unix外壳提供了I/O重定向操作符,允许用户将磁盘文件和标准输出输入联系起来. 例如:unix>ls>foo.txt,使得外壳加载和执行ls程序,将标准输出重定 ...
- 第一次spring冲刺第6天
鉴于昨天的调查,今天做了个谈论,主要针对以下几个问题 1.我们的客户类型? 2.如何实现他们的需求? 3.他们真正想要什么? 4.如何保证他们的满足度? 5.怎么使得工程不陷入死循环? 6.还存在什么 ...
- Tensorflow踩坑之tf.nn.bidirectional_dynamic_rnn()报错 “ValueError: None values not supported.”
详细解决方法见链接:https://stackoverflow.com/questions/39808336/tensorflow-bidirectional-dynamic-rnn-none-val ...
- angularJS1笔记-(2)-$watch方法监听变量的变化
html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- C# 正则提取字符串(提取一个或多个)
实例一:string result = ""; string str = "大家好! <User EntryTime='2010-10-7' Email='zhan ...