【欧拉路径】【矩阵树】笔记

news/2025/2/22 16:01:00/文章来源:https://www.cnblogs.com/zhiyin123/p/18730963

约定

  • 在下文中,索引从 \(1\) 开始。

存在欧拉路径的判断

无论是有向图还是无向图,仅考虑起点、终点和其他节点的度数即可。

找到欧拉路径

若判定存在欧拉路径,从起点开始 dfs,边的出栈序即为所求。需要当前弧优化,能做到 \(O(m)\)\(m\) 为边数)。

最小化字典序

直接将边排序,贪心 dfs 即可。

欧拉路径的应用

边定向问题

问题:给定 \(m\) 个二元组构成的组 \(E=((u_1,v_1),(u_2,v_2),\dots,(u_m,v_m))\),你需要将所有二元组重排序,并将组 \(E\) 重排序,使得 \(\forall i\),满足 \(E[i][2]=E[i+1][1]\)

解说:这就是寻找欧拉路径。

双重平均分配问题

问题:给定大小为 \(n\times m\) 的数组 \(S\),且 \(\forall i,j\),有 \(S[i][j]\in\mathbb{N}\)。你需要构造一个 \(n\times m\)非负整数数组 \(A\),满足

  1. \(\forall i,j\),满足 \(A[i][j]\leq S[i][j]\).
  2. \(\forall i\),满足 \(\displaystyle \sum_{j=1}^m A[i][j]=\frac{1}{2}\sum_{j=1}^m S[i][j]\).
  3. \(\forall j\),满足 \(\displaystyle \sum_{i=1}^n A[i][j]=\frac{1}{2}\sum_{i=1}^n S[i][j]\).

若不存在构造,需报告无解。

解说:建无向图 \(G\),建立点集 \(\{x_1,x_2,\dots,x_n,y_1,y_2\dots,y_m\}\)\(\forall i,j\),连接 \(S[i][j]\)无向重边 \(x_i\leftrightarrow y_j\)。若 \(G\) 存在欧拉回路,则有解。设欧拉回路为 \(P\),则 \(A[i][j]\) 可构造为 \(P\) 中边 \(x_i\to y_j\) 的条数。时间复杂度 \(O(n+m+\sum S[i][j])\)

例题:P9731 [CEOI 2023] Balance - 洛谷

行列式求值

有的时候,直接 \(O(n^3)\) 正常消元即可。

任意模数行列式求值

需要使用辗转相除来实现消元。时间复杂度 \(O(n^2\log V+n^3)\)

P7112 【模板】行列式求值 - 洛谷

矩阵树定理(无证明)

无向图生成树计数\((\)度数矩阵 \(-\) 邻接矩阵\()\) 的任意余子式。

有向图内向生成树计数\((\)出度矩阵 \(-\) 邻接矩阵\()\) 的根余子式。

有向图外向生成树计数\((\)入度矩阵 \(-\) 邻接矩阵\()\) 的根余子式。

BEST 定理

对于有向欧拉图 \(G=(V,E)\),欧拉回路数量为(回路无起点,边有标号)

\[\boxed{T[S]\times\prod_{u\in V} (\text{deg[u]}-1)!} \]

其中 \(\text{deg}[u]\) 为节点 \(u\) 的出度(也是入读),\(T[S]\) 表示以 \(S\) 为根的内向生成树数量。

证明可以考虑构造欧拉路和内向生成树的双射,让内向生成树的边成为关于该节点最后一条边。

这可以得到,\(\forall u,v\),有 \(T[u]=T[v]\)

例题:P10101 [ROIR 2023] 一个普通的字符串问题 (Day 2) - 洛谷

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/888042.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025省选模拟13

2025省选模拟13\(T1\) P1025. Easy Problem \(40pts\)部分分\(40pts\)设 \(f_{i,j}\) 表示 \(p_{3j}=i\) 时 \([1,i]\) 对答案的贡献,状态转移方程为 \(f_{i,j}=\max\limits_{k=3(j-1)}^{i-3} \{ f_{k,j-1}+w(k+1,i) \}\) ,其中 \(w(k+1,i)\) 表示 \([k+1,i]\) 的次大值。 设…

installerX还你一个清爽的安装

相信大家都有被手机自带的软件安装器折磨的情况,各种禁止安装,这种验证和识别,不开启安全模式和开了没区别,针对这种情况有没有什么办法绕过呢? 我们可以使用开源软件installerX,这款软件使用拥有这类原生的安装体验,安装速度也不差,并且简洁高效,还可以进行降级安装。…

[Paper Writting] 论文画图指南

目录Motivation方法概念图新老对比类方法简图类实物示意图效果示意图Architecture Motivation 方法概念图 HPT新老对比类 OSXMOTRUniADMulti-modal 3D Human Pose Estimation方法简图类 MoCoconformerBEVFormerDETRDriveVLM实物示意图 emg2pose效果示意图 umetracktransmvshoid…

不到24小时,AOne让全员用上DeepSeek的秘诀是……

DeepSeek引发新一轮AI浪潮,面对企业数字化智能升级与数据安全红线的急迫需求,IT负责人的压力山大!如何在24小时内实现全员AI落地,同时为后续安全部署铺平道路?Step1:一键开启全员智能时代 基于国产大模型领军者DeepSeek(671B满血版&70B版),天翼云AOne搭载智能引擎…

Unity Addresable打包总结第一弹

前言 使用AB包很久了,一直没有机会做一个系统的总结,趁现在准备离职,时间空闲比较多,将项目内的Addresable使用经验大致的分析总结一下,以作日后备用。 使用介绍 下方的引用链接中,发哥已经总结的很详细了,但我这里还是稍微介绍一下基本流程。 基本流程在Package Manage…

AutoCAD 逆向工程中 Shx 字体文件解析

数据格式相关的文章代码实现 https://blog.csdn.net/qq_29830577/article/details/78604983#####愿你一寸一寸地攻城略地,一点一点地焕然一新#####

golang学习笔记——gorm

gen是gorm官方推出的一个GORM代码生成工具 官方文档:https://gorm.io/zh_CN/gen/ 1.使用gen框架生成model和dao 安装gorm gengo get -u gorm.io/gen假设有如下用户表CREATE TABLE user (`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 主键,`username` varchar(1…

原神

oj.hailiangedu.com/file/22/dragon.gif

平衡树从启蒙到入土

首先得承认伊德利拉美貌盖世无双将数列改成数后处理起来更舒服 什么是平衡树 更广泛的定义:左右子树高度不超过 1 的 如果将这东西和二叉搜索树结合,便是平衡树搜索树 平衡树分类:treap 随机 splay 贪心 fhq 合并 分裂fhq 实现 合并 给出两个树,根分别为 a、b,如果我们将 …

Entity Framework Core简单使用

它是微软官方发布的基于ADO.NET的ORM框架。通过EF可以很方便地将表映射到实体对象或将实体对象转换为数据库表。 ORM:将数据存储从域对象自动映射到关系型数据库的工具。ORM主要包括3个部分:域对象、关系数据库对象、映射关系。ORM使类提供自动化CRUD,使开发人员从数据库API…

易语言 -- 开山篇章

易语言简介 易语言(EPL)是一门以中文作为程序代码的编程语言,其以“易”著称,创始人为吴涛。易语言早期版本的名字为 E 语言,也通常代指与之对应的集成开发环境。其最早的版本发布可追溯至 2000 年 9 月 11 日。创造易语言的初衷是进行用中文来编写程序的实践,方便中国人…