数论与数论函数
我是一只计算鸡
The people who are crazy enough to think they can change the world are the ones who do.
展开
-
【Luogu 4777】扩展中国剩余定理
假设已经求出前面个方程的通解 ,。不难得出通解为现在加入第个方程,等价于求解通过扩展欧几里得求出方程的解,如果方程无解,则整个方程无解,如果有解#include<bits/stdc++.h>using namespace std;const int maxn = 1e5 + 7;typedef long long ll;ll a[maxn], b[...原创 2019-09-02 20:57:16 · 151 阅读 · 0 评论 -
【Luogu 3807】Lucas定理
给定 n,m,p(p为素数),求Lucas定理:#include<bits/stdc++.h>using namespace std;const int maxn = 1e5 + 7;typedef long long ll;ll fact[maxn], inv[maxn];ll n, m, p;ll power(ll a, ll b, ll mod) ...原创 2019-08-28 16:25:09 · 179 阅读 · 0 评论 -
【Luogu 4213】杜教筛
题目:求莫比乌斯函数、欧拉函数前缀和。由于 n 为,所以用杜教筛。莫比乌斯函数欧拉函数#include<bits/stdc++.h>using namespace std;const int maxn = 5e6 + 7;typedef long long ll;int p[maxn], flg[maxn];ll mu[ma...原创 2019-08-28 11:04:42 · 148 阅读 · 0 评论 -
杜教筛
杜教筛用于求数论函数前缀和。比如常见的莫比乌斯函数、欧拉函数。当, 我会循环当n =,我会线性筛当,我 。。。杜教筛可以低于线性时间复杂度求解数论函数前缀和,。对于数论函数,我们要求对于任意一个数论函数,如果我们可以很快的算出,然后用数论分块算出,我们就能很快得到莫比乌斯函数, 由于欧拉函数,由...原创 2019-08-27 11:17:06 · 301 阅读 · 0 评论 -
置换群
置换就是把n个元素做一个全排列。比如1, 2,3,4分别变成3,1,2,4,或者分别变成4,3,2,1。一般地,1变a1,2变a2,...的置换记为置换实际上就是一一映射。在程序上,可以用一个数组f={a1,a2,...,an}来表示1~n的一个置换,其中f[i]表示元素i所映射到的数。这个f也可以看成是定义域和值域为{1,2,3,...,n}的函数,其中f(1) = a1, f(2)= ...原创 2019-08-26 20:02:09 · 8439 阅读 · 2 评论 -
莫比乌斯反演
积性函数若,则是积性函数。常见积性函数单位函数:常数函数:恒等函数:欧拉函数:莫比乌斯函数:Dirichlet卷积、为两个数论函数,定义、的狄利克雷卷积为 :狄利克雷卷积单位元,任何函数卷都为其本身莫比乌斯函数证明...原创 2019-08-23 17:18:29 · 280 阅读 · 0 评论 -
【BZOJ 1257】数论分块
数论分块:在某个区间内为一定值,将该值相同的区间分为一块。对于含有的求和式子,对于任意一个 i (i <= n),我们需要找到一个最大的 j (i <= j <= n)使得,这个很好得出,既然我们要对含有的式子求和,那我们就要找到区间的都含有。假设 i 是第一次出现满足要求的下标,那么显然这段区间内都是的倍数,所以用 n 除以,就得到了最大的那...原创 2019-08-20 19:20:21 · 266 阅读 · 0 评论 -
【HDU 1521】排列组合 母函数
排列组合Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5474Accepted Submission(s): 2398Problem D...原创 2019-04-22 23:45:27 · 193 阅读 · 0 评论 -
【POJ 2409】Let it Bead Polya定理
Let it BeadTime Limit:1000MS Memory Limit:65536K Total Submissions:6870 Accepted:4565 Descripti...原创 2019-04-22 20:11:12 · 213 阅读 · 0 评论 -
【HDU 1023】Train Problem II Catalan数打表 + 大数模拟乘除法
Train Problem IITime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 12037Accepted Submission(s): 6424Proble...原创 2019-04-17 18:50:00 · 139 阅读 · 0 评论 -
【UVA 10200】Prime Time 素数打表 + 精度
Euler is a well-known matematician, and, among many other things, he discovered that the formula n^2+ n + 41 produces a prime for 0 ≤ n < 40. For n = 40, the formula produces 1681, which is 41 ∗...原创 2019-04-17 00:08:17 · 155 阅读 · 0 评论 -
【POJ 2249】 Binomial Showdown 组合数学 排列组合计算
组合(combination),数学的重要概念之一。从n个不同元素中每次取出m个不同元素(0≤m≤n),不管其顺序合成一组,称为从n个元素中不重复地选取m个元素的一个组合。所有这样的组合的总数称为组合数,这个组合数的计算公式为或者简单的说就是从n个数中每次取m个元素,一共有多少种不同的取法。tips:如果用第一个公式计算组合时,可能因为阶乘过大而导致乘法溢出。所以我们选用第二个...原创 2019-01-18 22:43:20 · 397 阅读 · 4 评论 -
【SGU 261】BSGS算法详解
BSGS(baby-step gaint-step),大步小步算法,该算法可以在时间复杂度内求解 算法描述我们令,,这样我们可以保证由于我们知道,我们可以先枚举B算出右边,存在一个hash表里面,然后再枚举A计算左边的的值,然后去判断hash表里面是否...原创 2019-09-06 23:52:42 · 276 阅读 · 0 评论 -
【Gym 100633J】Ceizenpok’s formula 扩展Lucas详解
,不为素数首先对p进行因式分解,然后用中国剩余定理合并现在的问题是怎么求出因为、不一定和互质, 所以、的逆元不一定存在因此我们可以化简一下,这样形如与一定互质,逆元一定存在那我们怎么计算, 我们可以先计算为了方便理解,我们先假设因为我们要保证互质,逆元才存在,所以要被除掉我们定义,那么现在就可以求逆...原创 2019-09-04 23:36:18 · 301 阅读 · 0 评论 -
【Luogu 3868】TJOI 2009 中国剩余定理
两两互质求解过程一:二: 1: 2:计算在模下的逆元 3:不要对取模三: 证明: #include<bits/stdc++.h>using namespace std;typedef long long ll;ll a[17], b[17], n;ll ex...原创 2019-09-02 20:54:51 · 139 阅读 · 0 评论 -
【SPOJ】Power Modulo Inverted 扩展BSGS
当时,我们就不能用BSGS算法求解。既然不互质时,我们无法求解,那我们就想办法让如果, 就成了我们熟悉的BSGS算法了。如果,如果,则方程无解否者一直除到互质为止假设进行了t次除法,#include<bits/stdc++.h>using namespace std;const int MOD = 76543; typedef lo...原创 2019-09-10 20:26:38 · 223 阅读 · 0 评论