有向图欧拉回路个数

BZOJ 3659 但是没有这道题了  直接贴一个别人的板子吧

欧拉回路:存在一条路径经过所有的边刚好1次

有向图欧拉回路存在充要条件:①图连通;②对于所有点都满足出度=入度

BEST 定理   https://en.wikipedia.org/wiki/BEST_theorem

定理没仔细看 这个东西感觉不需要搞得非常懂 定理而已。

我只记住了公式 tw(G)表示外向生成树个数,deg表示入度出度都一样 相等的嘛。

当然欧拉回路因为是回路所以存在循环同构,例如下图:

1->2;2->1;1->3;3->1

欧拉回路其实只有1种,但是如果算路径走法的话就会有2种

1 2 1 3 1 和 1 3 1 2 1

这个时候sum还要再乘上x点的出度

https://blog.csdn.net/popoqqq/article/details/77017325

https://blog.csdn.net/Jaihk662/article/details/79338437

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define LL long long
#define mod 1000003
LL Jz[][], out[], jc[] = {};
int main(void)
{
LL ans, A, B, P, temp;
int n, i, j, k, m, x;
for(i=;i<=;i++)
jc[i] = jc[i-]*i%mod;
while(scanf("%d", &n), n!=)
{
memset(Jz, , sizeof(Jz));
for(i=;i<=n;i++)
{
scanf("%d", &m);
out[i] = m;
while(m--)
{
scanf("%d", &x);
Jz[i][x]--, Jz[x][x]++;
}
}
if(n== && out[]==)
{
printf("1\n");
continue;
}
n -= ;
for(i=;i<=n;i++)
{
for(j=;j<=n;j++)
Jz[i][j] = (Jz[i+][j+]+mod)%mod;
}
ans = ;
for(i=;i<=n;i++)
{
for(j=i;j<=n;j++)
{
if(Jz[j][i])
break;
}
if(j!=i)
{
ans = mod-ans;
for(k=i;k<=n;k++)
swap(Jz[i][k], Jz[j][k]);
}
for(j=i+;j<=n;j++)
{
A = Jz[i][i], B = Jz[j][i];
while(B)
{
P = A/B, temp = A, A = B, B = temp%B;
ans = mod-ans;
for(k=i;k<=n;k++)
{
Jz[i][k] = (Jz[i][k]-P*Jz[j][k]%mod+mod)%mod;
swap(Jz[i][k], Jz[j][k]);
}
}
}
ans = ans*Jz[i][i]%mod;
}
if(ans==)
{
printf("0\n");
continue;
}
n += ;
for(i=;i<=n;i++)
ans = ans*jc[out[i]-]%mod;
ans = ans*out[]%mod;
printf("%lld\n", ans);
}
return ;
}
/*
3
2 2 3
1 1
1 1
*/

有向图欧拉回路个数 BEST定理的更多相关文章

  1. bzoj 1515 [POI2006]Lis-The Postman 有向图欧拉回路

    LINK:Lis-The Postman 看完题觉得 虽然容易发现是有向图欧拉回路 但是觉得很难解决这个问题. 先分析一下有向图的欧拉回路:充要条件 图中每个点的入度-出度=0且整张图是一个强连通分量 ...

  2. poj 1386 Play on Words(有向图欧拉回路)

    /* 题意:单词拼接,前一个单词的末尾字母和后一个单词的开头字母相同 思路:将一个单词的开头和末尾单词分别做两个点并建一条有向边!然后判断是否存在欧拉回路或者欧拉路 再次强调有向图欧拉路或欧拉回路的判 ...

  3. POJ 2230 Watchcow(有向图欧拉回路)

    Bessie's been appointed the new watch-cow for the farm. Every night, it's her job to walk across the ...

  4. LOJ-10106(有向图欧拉回路的判断)

    题目链接:传送门 思路: (1)将每个单词视为有向路径,单词的起始字母是起始节点,末尾字母是终止节点,然后找由字母建立的有向图 是否是欧拉图或者半欧拉图. (2)先用并查集判断是否连通,再判断入度与出 ...

  5. 算法笔记_148:有向图欧拉回路求解(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 Description A catenym is a pair of words separated by a period such that t ...

  6. 算法笔记_147:有向图欧拉回路判断应用(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 Description In order to make their sons brave, Jiajia and Wind take them t ...

  7. bzoj 4897 天赋 有向图的矩阵数定理

    4894: 天赋 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 104  Solved: 80[Submit][Status][Discuss] De ...

  8. 行列式&矩阵树定理

    行列式: 参考 oi-wiki 定义 对于一个\(n*n\)的矩阵A行列式取值(标量) \(det(A)=|A|=\sum\limits_p(-1)^{\tau(p)}\prod\limits_{i= ...

  9. Matrix-tree 定理的一些整理

    \(Matrix-tree\) 定理用来解决一类生成树计数问题,以下前置知识内容均是先基于无向无权图来介绍的.有关代数余子式的部分不是很明白,如果有错误还请指出-- 部分内容参考至:\(Blog\_1 ...

随机推荐

  1. 不全屏显示、手柄不居中的SlidingDrawer

    SlidingDrawer是一个滑动式抽屉,通过点击或拖拽手柄(handle)来显示或隐藏内容(content). 看了很多关于SlidingDrawer的例子,但基本都是全屏显示,并且手柄居中的.我 ...

  2. XCode调试器LLDB

    与调试器共舞 - LLDB 的华尔兹 你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThisThing); 或者跳过一 ...

  3. Windows各个文件夹介绍

    windows文件介绍 总结 ├WINDOWS │ ├-system32(存放Windows的系统文件和硬件驱动程序) │ │ ├-config(用户配置信息和密码信息) │ │ │ └-system ...

  4. Vue构建命令

    node -v npm -v vue -V npm install vue (这个命令不行) 提示信息:+ vue@2.6.10 updated 1 package and audited 1 pac ...

  5. python基础一 day9 函数升阶(2)

    def max(a,b): return a if a>b else bprint(max(1, 2)) # 函数进阶# a = 1# def func():# print(a)# func() ...

  6. ADB相关指令实例详解

    1.获取物理设备相关信息: adb devices 2.apk安装 2.1 新的应用(该应用未安装) adb -s 设备序列号 install apk路径 2.2 应用已安装,重安装覆盖 adb -s ...

  7. 日常[splay]:水题记——营业额统计

    没错这就是让我深陷splay之中的罪魁祸首,昨天打了一下午结果发现是玄学错误的那个 人生第一棵splay平衡树 题目大意:求一段序列,小于当前元素的最大值和大于当前元素的最小值.从该元素前面的元素找. ...

  8. DI:Defect Index(缺陷率)

    DI:Defect Index(缺陷率) 定义:DI值是衡量软件质量的高低的指标之一. 公式:DI= 致命级别的问题个数*10+严重级别的问题个数*3+一般级别的问题个数*1+提示级别的问题个数*0. ...

  9. JavaScript 非常重要的几个概念

    JavaScript是一门比较复杂的语言.如果你是一名JavaScript开发人员,不管处于什么样的水平,都有必要了解JavaScript的基本概念.小编最近的工作涉及到JavaScript,于是本文 ...

  10. cmd启动MySQL服务器发生错误

    Mysql net start mysql启动,提示发生系统错误 5 拒绝访问  原文:https://blog.csdn.net/angel_guoo/article/details/7919037 ...