![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
初等数论
恋花飘落
这个作者很懒,什么都没留下…
展开
-
POJ - 1061 青蛙的约会
题干:两只青蛙它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面...原创 2019-03-06 08:19:03 · 95 阅读 · 0 评论 -
POJ-1845 Sumdiv (快速乘)(乘法逆元)(唯一分解定理)
题干:给定a、b,求aba^bab的所有因子和,结果模9901.0 <= A,B <= 50000000思路:根据唯一分解定理:a=P1e1P1^{e1}P1e1 * P2e2P2^{e2}P2e2 * P3e3P3^{e3}P3e3 …PnenPn^{en}Pnen(Pi为素数)所以a的因子和可以写成:ans=(1+P11P1^{1}P11+P12P1^{2}P12…P1e...原创 2019-04-04 10:57:34 · 160 阅读 · 0 评论 -
ZOJ-4029 Now Loading!!!
题干:给你n个ai和m个pi,求 ∑i=1m\sum_{i=1}^{m}∑i=1m(i* ∑j=1n\sum_{j=1}^{n}∑j=1n ⌊aj⌈logpiaj⌉⌋\lfloor \frac{a_j}{\lceil \log_{p_i}{a_j} \rceil} \rfloor⌊⌈logpiaj⌉aj⌋) % 10910^9109的值。2≤pi≤1092 \le p_i \l...原创 2019-03-18 20:40:23 · 165 阅读 · 0 评论 -
HDU-4549 M斐波那契数列(矩阵快速幂)(费马小定理)
#include &lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;algorithm&gt;#include &lt;cstdlib&gt;#include &lt;cmath&gt;#include &lt;cstring&gt;usin原创 2019-03-13 09:58:04 · 271 阅读 · 0 评论 -
poj2478 Farey Sequence (欧拉函数)
题干:给你一个n,设a,b为任意大于零小于等于n的整数,求a/b能组成多少种不同的数。例如:F2 = {1/2}F3 = {1/3, 1/2, 2/3}F4 = {1/4, 1/3, 1/2, 2/3, 3/4}F5 = {1/5, 1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5}2 <= n <= 10610^6106思路:观察前四项,我...原创 2019-03-08 08:28:16 · 98 阅读 · 0 评论 -
初等数论总结(补完中)
文章目录欧拉函数唯一分解定理欧几里得算法扩展欧几里得算法(补全中)欧拉降幂线性筛素数欧拉函数含义 : 欧拉函数Φ(n)表示小于n的数于n互质(gcd(x,y)=1,则互质)的个数。性质:若n为素数,Φ(n)=n-1;实现:long long ol[mx]; void getol(){ memset(ol,0,sizeof(ol)); ol[1]=1; for(long lon...原创 2019-03-10 20:13:57 · 1022 阅读 · 0 评论 -
codeforces 616E Sum of Remainders (数论)
题干:给你一个n,求n mod 1 + n mod 2 + n mod 3 + … + n mod m.即∑1mnmod(i)\sum_{1}^m{nmod(i) }∑1mnmod(i)思路:∑1mnmod(i)\sum_{1}^m{nmod(i) }∑1mnmod(i) = ∑1mn−(n∣i)mod(i)\sum_{1}^m{n-(n|i)mod(i) }∑1mn−(n∣i)mod...原创 2019-03-04 18:46:17 · 125 阅读 · 0 评论 -
Super A^B mod C(当幂数很大时)
题干:给你A,B,C,让你快速求出 A^B mod C. (1<=A,C<=1000000000,1<=B<=10^1000000).思路:因为B也就是幂数特别大,所以直接快速幂一定会超时,这时我们需要使B在模C的情况下减小,使用欧拉降幂。ABA^BAB mod C= A^(B mod phi(c ) ) mod C …(B<phi(c ))ABA^BA...原创 2019-03-04 18:31:51 · 454 阅读 · 5 评论 -
LightOJ - 1234 Harmonic Number (调和级数近似和)
题干:多组输入,给你一个n,求出H(n) = 1 + 12\frac{1}{2}21 + 13\frac{1}{3}31 + … +1n\frac{1}{n}n1 = ∑1n\sum \frac{1}{n}∑n1 ,保留八位小数。思路:(1)观察公式,可以发现这是一个调和级数求前n项和,因为只保留八位小数,我们可以使用调和级数的近似公式() H(n) = ln(n)ln(n)ln(...原创 2019-03-04 07:44:05 · 536 阅读 · 0 评论 -
LightOJ 1341 Aladdin and the Flying Carpet (唯一分解定理)
题干:给一对数字 a,b 。a是一个长方形的面积,问有多少种整数的边的组合可以组成面积为a的长方形,要求最短的边不得小于b。说白了,就是求a的所有公约数,其最小值不能小于b。思路:...原创 2019-03-04 07:16:34 · 109 阅读 · 0 评论 -
LightOJ - 1282 Leading and Trailing (幂指转换)(快速幂取模)
题干:给你两个数n,k,求nkn^knk 的前三位和后三位。思路:原创 2019-03-08 20:27:12 · 680 阅读 · 0 评论 -
LightOJ 1236 - Pairs Forming LCM (唯一分解定理)(最小公倍数)
题干:根据代码输出res的值。long long pairsFormLCM( int n ) { long long res = 0; for( int i = 1; i <= n; i++ ) for( int j = i; j <= n; j++ ) if( lcm(i, j) == n ) res++; // lcm me...原创 2019-03-08 19:58:34 · 112 阅读 · 0 评论 -
LightOJ 1370- Bi-shoe and Phi-shoe (欧拉函数的性质)
题干:一个竹竿长度为p,它的score值就是比p长度小且与且与p互质的数字总数(也就是欧拉函数),比如9有1,2,4,5,7,8这六个数那它的score就是6。给你T组数据,每组n个学生,每个学生都有一个幸运数字,求出要求买n个竹子每个竹子的score都要大于或等于该学生的幸运数字,每个竹竿长度就是花费,求最小花费。思路:因为求最小花费,就是求每个人买的竹子长度最短。设x使得Φ(x)的值...原创 2019-03-03 18:40:08 · 149 阅读 · 0 评论 -
LightOJ 1220 Mysterious Bacteria(唯一分解定理) (素数筛)
题干:给你一个整数x,令x=bpb^pbp(b,p都为整数),求p的最大值。x为32位有符号整型。思路:首先,素数因为不能被除1和它自身外整除,所以x为素数时p=1;x为合数时,根据唯一分解定理:x=p1a1p1^{a1}p1a1 * p2a2p2^{a2}p2a2 …*pnanpn^{an}pnan然后我们对所有的ai求最大公约数,就是p。因为x可能为负数,所以为负时p为奇数,需要...原创 2019-03-08 16:34:29 · 98 阅读 · 0 评论 -
LightOJ 1213 - Fantasy of a Summation (排列组合)(快速幂)
题干:求该代码的结果#include <stdio.h>int cases, caseno;int n, K, MOD;int A[1001];int main() { scanf("%d", &cases); while( cases-- ) { scanf("%d %d %d", &n, &K, &MO...原创 2019-03-08 15:43:25 · 124 阅读 · 0 评论 -
LightOJ - 1259 E - Goldbach`s Conjecture(筛素数)(内存问题)
题干:就是验证哥德巴赫猜想。输入的是一个偶数n,求n能拆成多少种两个素数的和。4 ≤ n ≤ 10710^7107, n is even思路:我们先根据数据范围筛出所有素数,然后拿这些素数去减n,判断它是否为素数,如果为素数ans++。注意数据范围是10710^7107,开int数组的会出错,所以判断素数用bool数组#include <cstdio>#include ...原创 2019-03-06 11:13:56 · 133 阅读 · 0 评论 -
POJ - 2417 Discrete Logging(bsgs)(费马小定理)
题干:给定一个素数P, 2<=P< 2312^{31}231,两个正整数B , 2 <=B<P; N , 1<=N<P;求一个正整数L,使得BL≡N(modP)B^L≡N (mod P)BL≡N(modP)思路:本体是一个BSGS模板题。先来看下需要了解的定理。因为给定的P为素数,根据费马小定理:B(P−1)B^{(P-1)}B(P−1) ≡ 1 ...原创 2019-04-02 16:40:54 · 137 阅读 · 0 评论