一些有用的数学结论(持续更新)
1.染色问题
(1).环染色问题
①公式:
\(f(m)=(-1)^m*(n-1)+(n-1)^m\)
②证明:
2.矩阵
(1).邻接矩阵的幂
邻接矩阵的\(i\)次方后的 \(a(u, v)\) 表示 \(u\) 在走了\(i + 1\)步后走到 \(v\)的方案总数(钛变态了)
证明
\(c[i][j]\) \(=\) \(\Sigma a[i][k] * b[k][j] (j \leq i)\)
而 \(a[i][k]\) 表示 \(i\) 到 \(k\) 的方案总数,\(b[k][j]\) 表示 \(k\) 到 \(j\) 的方案总数
所以根据乘法原理即证。
(2).矩阵幂的和
(3).矩阵乘法代替图形变换
3.代数变换(消元降次)
(1).均值不等式
(2).错位相消经典题型
①
\(\sum_{i = 1}^n i*(i+1)\)
\(=\sum_{i = 1}^n \frac{i *(i + 1) * [i + 2 - (i - 1)]}{i + 2 - (i - 1)}\)
\(=\sum_{i = 1}^n \frac{[i * (i + 1) * (i + 2) - (i - 1) * i * (i + 1)]}{3}\)
\(\because\) 错位相消
\(=\frac{n * (n + 1) * (n + 2)}{3}\)
4.模拟退火相关常量
const double q = 0.996;
// 温度变动量
srand (998244353);
for (int i = 1; i <= 1000; i++)
srand (rand ());
//种子初值
delta = ans1 - ans2;
if (exp (-delta / t) * RAND_MAX > rand ())
//选择概率
double cx = now.x + ((rand() << 1) - RAND_MAX) * t;
//下一个随机点
5.计算几何
(1).知三角形三点坐标求面积
Ⅰ
\(|(y_j-y_i)\cdot(x_k-x_i)-(y_k-y_i)\cdot(x_j-x_i)|\)
纵切法证明
Ⅱ 海伦公式
\(p = \frac{a+b+c}{2}\)
\(S = \sqrt{p(p-a)(p-b)(p-c)}\)