SkyWT

我们的征途是星辰大海。

欧拉函数 φ(n) 的几个常用性质

之前我们已经知道欧拉函数 $\varphi(n)$ 的计算公式:

\displaystyle \varphi (n)=n \ast \prod_{i-1}^{r} (\frac {p_i-1} {p_i})

我们还知道它的两条性质: 如果$\varphi(x)$中的x是质数 p 的 k 次幂,那么 $\displaystyle \varphi (x)=\varphi (p^k)=(p-1)p^{k-1}$ ; 欧拉函数是积性函数,如果 x 和 y 互质,则 $\varphi(xy)=\varphi(x) \varphi(y)=(x-1)(y-1)$ 。

今天我们要证明上述性质,再介绍几条新的性质。

Read more...

OI学习数论

乘法逆元三种求法总结

当我们取模的时候,被模数很大,无法直接计算其值,我们就会用取模运算的下面两个性质:

\displaystyle (a+b) \bmod x=((a \bmod x)+(b \bmod x))\bmod x \\
\displaystyle (a\ast b) \bmod x=((a \bmod x)\ast (b \bmod x))\bmod x

那么对于除法,是否也满足这个式子呢?

\displaystyle (a \div b) \bmod x=((a \bmod x)\div (b \bmod x))\bmod x

Read more...

欧拉函数、费马小定理与欧拉定理略解

在数论中,对正整数 n,欧拉函数 $\varphi (n)$ 是小于或等于 n 的正整数中与 n 互质的数的数目。此函数以其首名研究者欧拉命名,它又称为 φ 函数(由高斯所命名)或是欧拉总计函数(totient function,由西尔维斯特所命名)。(来自维基百科)

Read more...

OI学习数论

线段树(懒标记)总结

线段树是非常基础的算法了……

线段树是一种二叉树,可视为树状数组的变种,最早出现在2001年,由程序竞赛选手发明。我们ZS老师说过:“所有可以用树状数组解决的题目都可以用线段树解决,但是部分线段数可以解决的题目却无法用树状数组解决。”由此可见线段树十分强大……

Read more...

(转)C++内联函数(inline)

在C语言中,我们使用宏定义函数这种借助编译器的优化技术来减少程序的执行时间,那么在C++中有没有相同的技术或者更好的实现方法呢?答案是有的,那就是内联函数。内联函数作为编译器优化手段的一种技术,在降低运行时间上非常有用。我们将从:

  • 什么是内联函数
  • 为什么要使用内联函数
  • 内联函数优缺点分析
  • 何时使用内联函数

这四个方面对内联函数进行介绍。

Read more...

网络流最大流算法总结(Edmonds-Karp 算法+Dinic 算法)

网络流(network-flows)是一种类比水流的解决问题方法,与线性规划密切相关。网络流的理论和应用在不断发展,出现了具有增益的流、多终端流、多商品流以及网络流的分解与合成等新课题。网络流的应用已遍及通讯、运输、电力、工程规划、任务分派、设备更新以及计算机辅助设计等众多领域。

(2018.08.29 更新此文,你没有阅读过的船新版本)

Read more...