欧拉函数 φ(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)$ 。
今天我们要证明上述性质,再介绍几条新的性质。
阅读更多C++中的128位整型 __int128
C++里有普通的 32 位整数类型 int 和 64 位整数类型 long long,但是如果我们要存一个128位的整数,前两个似乎就无能为力了。这时候我们就要用到 __int128这种类型了。
阅读更多CodeForces 510D Fox And Jumping:DP + 数论 + 离散
很伤心,为什么NOIP不能用 C++11……
CodeForces 510D Fox And Jumping:510D
阅读更多0/1 分数规划与 Dinkelbach 迭代法
0/1 分数规划是一种常见的模型:给你 n 个价值 $a_i$ 与 n 个代价 $b_i$,让你选出 m 个数字,使得 $ \sum \frac {a_i} {b_i} $ 最大。显然这种题目可以用二分,但是有一种更优秀的方法:Dinkelbach 迭代法。
阅读更多CodeForces 555B Case of Fugitive:排序+贪心
做CF上的英文题真是不容易……
题目链接
CodeForces 555B:Case of Fugitive
阅读更多折线分割平面 题解
阅读更多洛谷 P1577 切绳子 :坑爹的 printf 自动四舍五入
洛谷链接:P1577 切绳子
看到我写这么简单的题的题解不要奇怪,因为这题很坑……XJ一大堆dalao都已经被坑害了……
阅读更多乘法逆元三种求法总结
当我们取模的时候,被模数很大,无法直接计算其值,我们就会用取模运算的下面两个性质:
$$
(a+b) \bmod x=((a \bmod x)+(b \bmod x))\bmod x \
(a\ast b) \bmod x=((a \bmod x)\ast (b \bmod x))\bmod x
$$
那么对于除法,是否也满足这个式子呢?
$$(a \div b) \bmod x=((a \bmod x)\div (b \bmod x))\bmod x$$
阅读更多欧拉函数、费马小定理与欧拉定理略解
在数论中,对正整数 n,欧拉函数 $\varphi (n)$ 是小于或等于 n 的正整数中与 n 互质的数的数目。此函数以其首名研究者欧拉命名,它又称为 φ 函数(由高斯所命名)或是欧拉总计函数(totient function,由西尔维斯特所命名)。(来自维基百科)
阅读更多欧几里德算法与拓展欧几里德算法略解
欧几里德算法(Euclidean algorithm)又叫做辗转相除法,用于求最大公约数。这个算法已经十分常见了。扩展欧几里德算法(Extended Euclidean algorithm)是欧几里德算法的扩展(废话……),这个算法在解不定方程的时候十分常见。
阅读更多