『矩阵树定理,LGV引理,行列式』Day9 略解

news/2025/1/7 22:14:42/文章来源:https://www.cnblogs.com/SFsaltyfish/p/18651023

前言

我抓不住世间的美好,所以只能装作万事顺遂的模样

第二个链接,做是做不起一点的,只能乞讨别考这些**东西。

A

最小带权生成树计数板题。(其实没这么多戏份)

首先先求出任意一颗最小生成树,如果没有直接输出 \(0\)

对于生成树上的每一种边权分别出来,每次把当前边权在原图上所有的边取出来,然后在树上把树上为这个边权的边删掉,假设树上有 \(k\) 条,那么就会分成 \(k+1\) 个连通块,取出来的边如果两个端点同属一个连通块那么显然没用,如果不属同一个连通块,那就把这两个连通块建一条边。然后把连通块当作点跑一边矩阵树,求得当前生成树计数。

最后根据乘法原理,把每种边权对应的生成树数量乘起来即可。

\(\texttt{Code}\)

C

先用莫比乌斯反演把 \(\gcd\) 拆开,这样就变成了枚举一些权值,所有能用的边就是整除这个权值的边,最后求一遍生成树价值之和,再乘上这个权值的欧拉函数即可。

将行列式的项写成 \(w_i\times x+1\),最后答案是行列式的一次项系数,因为答案实际上是钦定一条边之后的生成树个数 \(\times\) 这条边的边权之和,那么被乘上一次项系数的边就是被钦定的边。此时可以把高于一次的项忽略掉,复杂度 \(\mathcal{O}(n^3\times d)\)。(其中 \(d\) 表示可能的因子数目。)O(n^3)

\(\texttt{Code}\)

D

这下是真的板子题了。

对于一个最小生成树 \(\mathcal{P}\),它被选出来的概率是:\(\prod_{(i,j)\in \mathcal{P}} G_{i,j} \times \prod_{(i,j)\notin \mathcal{P}} (1-G_{i,j})\)

可以考虑稍微变个型:\(\prod_{(i,j)}(1-G_{i,j})\times \prod_{(i,j)\in \mathcal{P}} \frac{G_{i,j}}{1-G_{i,j}}\)

前面那一坨直接乘在外面,后面那一坨当作边权,然后直接跑带权矩阵树定理即可。

注意一下除以 \(0\) 的情况。

\(\texttt{Code}\)

H

别问我为什么中间会空这么多道题。

最大流其实就是我们在上一篇博客中的 \(\text{LGV}\) 扩展应用可以求的东西,就是两个点之间有多少边不相交的路径,然后将边看作点然后建边,跑 \(\text{LGV}\) 即可得到没边权的图的最大流。

开始摘抄题解:

但是直接这样做存在一些问题:

  • 起点集合(即 \(1\) 的所有出边)可能很大。我们新建源点 \(s\)\(k\) 个虚点 \(p_1,....p_k\),连边 \(s\to p_i,p_i\to t\) 即可,其中 \(t\)\(1\) 的任意出点。于是起点集合的大小被我们减小到了 \(\mathcal{O}(k)\)
  • 如果一个点的入度出度均较大,那么这个点的入边出边之间的边数会很大。注意到这些边都会随机赋一个权,相当于每个出边对应的向量为所有入边对应的向量的随机线性组合。于是对于入边,我们只需要保留线性无关的不超过 \(k\) 组向量即可,这个任务可以交给线性基解决。

时间复杂度 \(\mathcal{O}(m\times k^2)\)

\(\texttt{Code}\)

后记

感觉这个东西难点主要在行列式的组合意义或者它本身的式子对题目的解题效果。

往往我们需要对题目中要求的东西通过变型,来套到行列式或者矩阵上。

这个过程有大量繁琐的推柿子。

真尽力了,数学水平和数学工具不够,也就这做四道题的破水平了。

希望自己未来可以回看,说不定有更深的理解。数学终究还是太菜了。

周末有空对知识点做个总结,没空就只能向前看了,感觉这个版块似乎也没那么重要(?

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

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

相关文章

使用Cursor + Qwen2.5 大模型 零经验研发微信小程序:自由构建个性化节拍器应用实战

使用Cursor + Qwen2.5 大模型 零经验研发微信小程序:自由构建个性化节拍器应用实战" description = "本文介绍了如何利用Cursor工具结合Qwen2.5大模型快速开发一款个性化的微信小程序——老牛同学节拍器。通过详细的步骤,我们展示了从零开始创建一个功能完备的小程…

【金融安全】详解红筹架构的搭建

#金融与法律 #红筹架构 什么是红筹架构 红筹架构通常是指中国内地企业在境外(如中国香港、开曼群岛、英属维尔京群岛等地)设立特殊目的公司(SPV),然后将境内企业的资产或权益注入到这些SPV中,最终通过这些境外控股公司在境外交易所上市。红筹架构允许企业绕开国内直接上…

【金融安全】金融行业该如何保障数据安全?

近日,为规范银行业保险业数据处理活动,保障数据安全、金融安全,促进数据合理开发利用,维护社会公共利益和金融消费者合法权益,金融监管总局制定《银行保险机构数据安全管理办法》(以下简称《办法》)。《办法》强调了数据分类分级与安全管理的重要性,而身份数据作为最具…

IDEA 2024.3.1.1完整的安装教程(激活至2099年,以及常见问题处理)

卸载老版本 IDEA 首先,如果小伙伴的电脑上有安装老版本的 IDEA , 需要将其彻底卸载掉,如下所示(没有安装则不用管,直接安装即可): TIP:如果你之前使用过本站提供的 激活到 2025 年版本脚本,需要执行对应卸载脚本 /适用2024版本/JetBrains 2023 最新全家桶/jetbra /scrip…

R机器学习:神经网络算法的理解与实操,实例解析

神经网络算法是一种模仿生物神经网络(尤其是人脑)结构和功能的算法。它由大量相互连接的节点(称为神经元)组成,这些神经元组织成层,通过传递信号来处理信息。神经网络算法在机器学习、人工智能等领域中扮演着至关重要的角色,尤其擅长处理复杂的模式识别、分类和预测问题…

jenkins导出单个作业

进入下面页面,下载jenkin-cli.jar包。java -jar jenkins-cli.jar -s http://192.168.1.205:8080 -auth admin:xxx get-job job1 > job1.xml

DesignWare IP使用——层次化综合加快总体综合速度

记录一下目前综合时遇到的一点小问题。 目前的设计的计算模块里大量使用了DW IP,包括浮点除法器,浮点加减法器,浮点乘法器,浮点求根器,浮点比较器等每个各32个,直接综合的话会发现这些大的计算单元每个都需要进行mapping,会导致综合的总时长长的难以想象(可能需要数天的…

python 长数据转宽数据

import pandas as pd# 长格式数据 df_long = pd.DataFrame({id: [A, A, B, B, C, C],year: [2020, 2021, 2020, 2021, 2020, 2021],value: [10, 15, 20, 25, 30, 35] })print(df_long) df_wide = df_long.pivot(index=id, columns=year, values=value) print(df_wide)

第十八次作业

1、sql注入漏洞中,常见的防护方案有哪些?请简述原理和用法 类型转换: 将输⼊强制转换为整数/浮点 ⽤于整数/浮点类型的输⼊参数处理,可防⽌SQL注⼊。 intval($input) floatval() floor() (int)$input $input + 0 特殊字符转义: addslashes 在单引号()、双引号(")、反…

【自动化测试】Pytest之conftest详解

conftest介绍 pytest中定义个conftest.py来实现数据,参数,方法、函数的共享。 conftest.py 的文件名称是固定的, pytest 会自动识别该文件,可以理解成一个专门存放 fixture 的配置文件。一个工程下可以建多个 conftest.py 文件,一般我们都是在工程根目录下设置的 conftest…