首页 > 其他分享 >『矩阵树定理,LGV引理,行列式』Day9 略解

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

时间:2025-01-03 22:11:24浏览次数:1  
标签:prod Day9 边权 略解 times 行列式 mathcal 生成 LGV

前言

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

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

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}\)

后记

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

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

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

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

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

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

标签:prod,Day9,边权,略解,times,行列式,mathcal,生成,LGV
From: https://www.cnblogs.com/SFsaltyfish/p/18651023

相关文章

  • 『联合省选2025集训』『矩阵树定理,LGV引理,行列式』 Day8 略解
    前言许多人所谓的成熟,不过是被习俗磨去了棱角,变得世故而实际了。这两天的线性代数属实是要给我创破防了。拼尽全力战胜基础题目之后,难的题目偏的偏怪的怪,还有一堆不会的数学知识点,我还是摆烂了吧。先稍做一下总结。以及,我突然意识到总结的效率问题,或许我真的应该减少每道题......
  • LGV 引理
    LGV引理概述参考OIWikiLindström–Gessel–Viennotlemma,即LGV引理,可以用来处理有向无环图上不相交路径计数等问题。引理定义方阵\(M\)。结论是:\[\det(M)=\sum_{S:A\toB}(-1)^{sgn(\sigma(S))}\prod_{i=1}^n\omega(S_i)\]其中\(S:A\toB\)表示不相交路......
  • LeetCode算法题 (比较含退格的字符串)Day9!!!C/C++
    https://leetcode.cn/problems/backspace-string-compare/description/一、题目描述给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。二、相关知识点了解   ......
  • 『联合省选2025集训』『图的连通性进阶』Day3 略解
    前言我们趋行在人生这个亘古的旅途,在坎河中奔跑,在挫折里涅槃,忧愁缠满全身,痛苦飘洒一地。我们累,却无从止歇;我们苦,却无法回避。今天是连通性的进阶题目,重点是耳分解,双极定向,以及边三连通分量。因为调题速度过慢,导致被硬控,所以第二天晚上补的差不多了再来写的。感觉知识点方面......
  • 2025省选集训Day1 略解
    前言且视他人之疑目如盏盏鬼火,大胆地去走你的夜路。先做的前天的DP套DP,可能浪费了一个上午在麻将这个题上,感觉今天的题做不完了。A略BTZL说很简单,我信了,然后想了40多分钟都没搞明白简单在哪里。然后他又说随便找规律,然后完全不知道怎么找。简称太菜了。我们发现,......
  • Python基础 day9 迭代生成,文件操作
    一:迭代器 iter特点:每次迭代得到的结果都是下一次迭代的初始值。迭代对象:字符串,列表,元组,集合,字典。可迭代对象的表现形式为内置了iter方法的数据,都属于可迭代对象。声明迭代器:方法一:        变量名=可迭代对象.__iter__()方法二:      ......
  • 嵌入式DAY9
    原理图,NSS为片选线,数据线为PA7和PA6,时钟线为PA5。图二同理。在SPI1中配置全双工通信主机模式。PA15默认为高电平表示不选中。设置串口:设置cs:PA15:在W25Q64BV手册中,我们可以知道,上升沿将数据发送出去,下降沿将数据接收回来。TheinstructionsetoftheW25Q64BVconsis......
  • 15天大厂真题带刷day9
    ZT41 【模板】单源最短路Ⅰ‖无权图描述对于给定的由 ......
  • 线段树分治略解&杂题解析
    可能做到好题之后会再更新吧。总叙线段树与离线询问结合技巧又被称为线段树分治。使用线段树分治维护的信息通常会在某一个时间段内出现,要求在离线的前提下回答某一个时刻的信息并,则可以考虑使用线段树分治的技巧。以下是线段树分治的基本模板:change将信息按时间段覆盖在线......
  • 代码随想录算法训练营day9|●151.翻转字符串里的单词 ●卡码网:55.右旋转字符串 ●28.
    学习资料:https://programmercarl.com/0151.翻转字符串里的单词.html学习记录:151.翻转字符串里的单词(感觉C语言能考虑巧妙解法,而python直接搞就对了)c语言:把字符串整体反转,再用双指针法(slow,fast)依次翻转每一个单词,关键在于如何移除多余空格,用slow指针找到要替换到的位置,用fast......