随笔分类 - 数学
摘要:好神的一道计数题呀. code: #include <cstdio> #include <algorithm> #include <cstring> #define N 5000003 #define ll long long #define mod 998244353 #define setIO(
阅读全文
摘要:对于点对 $(x,y)$ ,考虑求出其循环节. 那么有 $(x+\frac{x}{B}) \mod A=(x+kB+\frac{x+kB}{B}) \mod A$ 其中 $\frac{x+kB}{B}$ 向下取整显然可以写成 $\frac{x}{B}+k$ 则有 $kB+k=0(\mod A)$ 解
阅读全文
摘要:题意:令 $f(i)$ 表示对于 $\binom{n}{i}$ 种包含 $i$ 个点的最小连通块的总节点个数和. 面对个数和/价值和且点和点之间没有限制条件的问题时可以考虑单独处理每个点的贡献. 考虑点 $j$ 对 $f(i)$ 的贡献. 那么 $j$ 对 $f(i)$ 有贡献时分两种情况. 1.
阅读全文
摘要:模板题呀. code: #include <cstdio> #include <cstring> #include <cmath> #include <map> #include <algorithm> #define ll long long #define setIO(s) freopen(s"
阅读全文
摘要:这里讲一下普通的 BSGS 如何实现: 我们要求解形如 $y^x \equiv z(\mod p)$ 的 $x$ 的整数解(其中 $gcd(y,p)=1$) 我们将 $x$ 写成 $am-b$ 的形式,原式就变为 $y^{am} \equiv z \times y^b (\mod p)$ 然后 $b
阅读全文
摘要:这道题很巧妙啊. 有两个性质: 1.一个图的最小生成树的每种边权数量是相等的. 2.有 1 得,如果任意一个最小生成树中边权为 $v$ 的边都断掉,$(x,y)$ 连通性在任意 MST 中都相等. 所以我们的做法就是先求出最小生成树,然后分别将每种边权 $v_{i}$ 从最小生成树中都断掉,得到若干
阅读全文
摘要:矩阵树定理求的是 $\sum_{E} \prod_{e \in E} w(e)$ 平时我们求的大多数是方案数,所以就默认那个 $w(e)$ 是 $1$. 而如果我们想求所有生成树权值之和的话就让那个 $w(e)$ 变成边权. 我们在设置最开始的那个 (度数-邻接)矩阵的时候度数矩阵中 $S1_{i,
阅读全文
摘要:求生成树方案的话要用矩阵树定理,然后这个容斥就是常见套路了吧. code: #include <cstring> #include <cstdio> #include <vector> #include <algorithm> #define N 18 #define mod 1000000007
阅读全文
摘要:这里的模数不是质数,所以需要用类似辗转相除的方式进行高斯消元. code: #include <cstdio> #include <algorithm> #define N 100 #define ll long long #define mod 1000000000 #define setIO(s
阅读全文
摘要:这里简单讲一下矩阵树定理: 我们分 3 种情况: 1. 给定一个无向图,求生成树个数. 2. 给定一个有向图,求以一个点为根的内向树个数. 3. 给定一个有向图,求以一个点为根的外向树个数. case1: 构造度数矩阵 $S1$,满足 $S1_{i,i}$ 等于 $i$ 点的度数(一条无向边当成两条
阅读全文
摘要:code: #include <cstdio> #include <cstring> #include <algorithm> #define M 185 #define N 10000008 #define ll long long #define setIO(s) freopen(s".in",
阅读全文
摘要:很不错的一道数数题. code: #include <cstdio> #include <algorithm> #define N 203 #define ll long long #define mod 1000000007 #define setIO(s) freopen(s".in","r",
阅读全文
摘要:好神仙的多项式啊! 需要用到:prufer序列,生成函数,多项式求逆,多项式取 ln,多项式 exp..... code: #include <cmath> #include <cstring> #include <algorithm> #include <cstdio> #include <str
阅读全文
摘要:标签:生成函数,多项式exp 有 $n$ 个点,每个点有一个度数 $v[i]$,代表如果选择这个点就必须满足这个点与 $v[i]$ 条边相连. 求:有多少种选法,使得所选集合中的点能构成一棵树. 如果 $m$ 个点能生成一颗树,那么一定满足 $\sum v_{i}=2\times (m-1)$ 这是
阅读全文
摘要:标签:生成函数,多项式 exp 题意:一共有 $n$ 个物品,每件物品体积为 $v_{i}$,数量为 $10^5$,求:装满一个容量为 $m$ 的背包有多少种不同方案. 比较友好的生成函数,并不是很难推导(似乎有些套路QAQ) 对于每一件物品列生成函数 $F_{i}(x)=\sum_{i=0}^{\
阅读全文
摘要:题意:有红球,蓝球,绿球,黄球,其中红球和绿球都只能选择偶数个,求选择 $n$ 个球摆成一排有多少种方案数. 我们构造关于这些球的指数型生成函数 $F(x)=\sum_{i=0}^{\infty} \frac{a_{i}}{i!}x^i$ 其中 $a_{i}$ 表示选择 $i$ 个球的不同排列数.
阅读全文
摘要:求:$n$ 个点的二叉树叶子个数期望. 设 $f_{n}$ 表示 $n$ 个点所有不同的二叉树叶子总个数,$g_{n}$ 表示 $n$ 个点不同的二叉树个数. 则有 $ans=\frac{f_{n}}{g_{n}}$ 有 $g_{n}=\sum_{i=0}^{n-1}g_{i}g_{n-i-1}$
阅读全文
摘要:这个还是比较简单的. 将 $x$ 质因数分解,然后依次考虑每个质因子的贡献就行了,贡献是一个组合. code: #include <cstdio> #include <algorithm> #define N 2000006 #define ll long long #define mod 1000
阅读全文
摘要:这个题的思路非常神啊,感觉不太好理解... code: #include <cstdio> #include <algorithm> #include <cstring> #include <string> #define N 100006 #define ll long long using na
阅读全文
摘要:复习一下线性基 ~ code: #include <cmath> #include <vector> #include <cstdio> #include <string> #include <cstring> #include <algorithm> #define N 500008 #defin
阅读全文

浙公网安备 33010602011771号