数论
文章平均质量分 58
Tao_oc
加油
展开
-
Power Products
链接:https://codeforces.com/contest/1247/problem/D题意:给定n个数组,a[i],求其中有多少个二元组(i,j),i!=j,a[i]*a[j]=x^k,x可以为任意数解析:如果a[i]*a[j]==x^k,呢么a[i]*a[j]的素因子和x的素因子相同,且a[i]*a[j]的素因子的幂次全部为k的倍数我们把a[i]素因子分解,如果一个...原创 2019-10-27 23:38:23 · 263 阅读 · 0 评论 -
Sasha and a Bit of Relax(数论,异或)
C. Sasha and a Bit of Relax链接:C - Sasha and a Bit of Relax题意:给一个数组a,a[l]⊕a[l+1]⊕…⊕a[mid]=a[mid+1]⊕a[mid+2]⊕…⊕a[r],mid=(l+r-1)/2;问有多少个l,r对可以构成这种等式,只考虑 l-r+1=偶数 的情况解析:利用异或的性质:出现偶数次的数异...原创 2019-03-01 15:34:14 · 342 阅读 · 0 评论 -
C. Multiplicity(dp,欧拉)
C. Multiplicitytime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given an integer array a1,a2,…,ana1,a2,…,an.The array b...原创 2019-02-13 23:26:04 · 259 阅读 · 0 评论 -
数论&组合数学
数论1.素数and因数素数因子互质对数快速判定素数2.欧拉欧拉函数欧拉降幂3.快速乘,快速幂,矩阵快速幂运算快速幂运算and 快速乘运算矩阵快速幂模板4.高精度算法高精度运算模板(大数运算)5.欧几里得欧几里得算法gcd(辗转相除法)扩展欧几里得逆元组合数学线性基排列组合位运算圆周率:PI 3.141592...原创 2019-02-09 16:52:59 · 540 阅读 · 0 评论 -
矩阵快速幂
矩阵快速幂矩阵快速幂运用倍增的思想,可将暴力需要O(n)的算法优化到O(logn)其思想和快速幂异曲同工,只是一个是数乘法,一个是矩阵乘法.一般用来n非常大求递推公式的f(n)的值矩阵快速幂模板:#include <iostream>#include <cstdio>#include <cstring>#define ll long ...原创 2019-02-09 16:45:45 · 162 阅读 · 0 评论 -
The Luckiest number(欧拉定理,快速幂,快速乘)
The Luckiest numberTime Limit: 1000MS Memory Limit: 65536K Total Submissions: 6956 Accepted: 1854 DescriptionChinese people think of '8' as the lucky digit. Bob also likes digi...原创 2019-02-09 14:57:31 · 332 阅读 · 0 评论 -
hdu-4135(区间互质个数)
链接:Co-prime题意:求(a,b)中与n的互质的数的个数转化为求: n关于 (1,b) - (1,a-1) 互质互质=总数-因子数我们需要求(1,m)中n的因子个数先求n的素因子再用依次m/(n的素因子),再用容斥比如(1,15) 中6的素因子6的素因子:2,3总素因子=15/2+15/3-15/(2*3)ac:#includ...原创 2019-02-08 11:46:48 · 694 阅读 · 0 评论 -
hdu1695(质数对)
GCDTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 17520 Accepted Submission(s): 6749Problem DescriptionGiven 5 integers: a, b, c, d, ...原创 2019-02-08 11:45:34 · 128 阅读 · 0 评论 -
因子
若整数n除以整数d的余数为0,即d能整除n,则称d是n的约数 ,n是d的倍数,记为 d|n唯一分解定理(算数基本定理):任一大于1的自然数原创 2019-02-08 11:15:54 · 484 阅读 · 0 评论 -
互质对数
求MAXN以内互质的数的对数欧拉函数值累加#include <bits/stdc++.h>using namespace std;const int N = 50005;int prime[N];void solve(){ prime[1] = 1; for(int i = 2; i <= N; i++) { if...原创 2019-02-07 23:15:40 · 675 阅读 · 0 评论 -
欧拉
欧拉函数:对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目1.欧拉函数公式:φ(x)=x*(1-1/p1)*(1-1/p2)*(1-1/p3)*(1-1/p4)…..(1-1/pn)其中p1, p2……pn为x的所有质因数,x是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)。对于质数p,φ(p) = p - 1。注意φ(1)=1.ll phi(ll ...原创 2019-03-10 17:08:57 · 494 阅读 · 0 评论 -
Zero Quantity Maximization(GCD,模拟)
题意:给n个ai,n个bi自己选择d,使0=d*ai+bi的个数最多(d是实数范围) ( -1e9 <= ai,bi <= 1e9 )d=-bi/ai,找最多的di,但不好直接除来比较,会出现精度问题ai = ai/gcd(ai,bi), bi = bi/gcd(ai,bi)比较两个同时相等的个数注意几个特殊情况ai==0&&bi==...原创 2019-03-09 22:55:27 · 234 阅读 · 0 评论 -
数论题集
链接:https://ac.nowcoder.com/acm/contest/903/B来源:牛客网解析:一开始想用逆元,但发现q-1不一定和mod互质,所以不能用直接逆元ac:#include<bits/stdc++.h>#define ll long longusing namespace std;ll n,q,p;ll mult(ll a,ll b,...原创 2019-08-19 21:14:26 · 461 阅读 · 0 评论 -
筛法例题
https://vjudge.net/problem/HDU-2136题意:给定一个n,求n的最大素因子是第几个素数直接用素因子筛ac:#include <iostream>#include <cstdio>using namespace std;#define MAXN 1000000+5int a[MAXN];int main(){...原创 2019-07-24 11:53:18 · 172 阅读 · 0 评论 -
扩展欧几里得
扩展欧几里得算法:ll exgcd(ll a,ll b,ll &x,ll &y){ if(b==0){ y=0; x=1; return a; } ll ans=exgcd(b,a%b,y,x); y-=a/b*x; return ans;}扩展欧几里得算法:void exgc...原创 2019-04-24 14:40:39 · 136 阅读 · 0 评论 -
Tachibana Kanade Loves Probability(快速幂,模拟除法)
链接:https://ac.nowcoder.com/acm/contest/548/B来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述立华奏在学习初中数学的时候遇到了这样一道大水题:“设箱子内有 n 个球,其中给 m 个球打上标记,设一次摸球摸到每一个球的概率...原创 2019-04-07 19:32:20 · 161 阅读 · 0 评论 -
欧拉函数和欧拉降幂
1.hdu3307:http://acm.hdu.edu.cn/showproblem.php?pid=3307题意:a(n)=X*a(n-1)+Y Y%(X-1)=0求最小的k使得:a(k)%a(0)=0a(1)=X*a(0)+Ya(2)=X*a(1)+Y=X(X*a(0)+Y)+Y=a(0)*X^2+(1+X)Ya(3)=X*a(2)+Y=X(a(0)*X^...原创 2019-02-03 22:27:38 · 318 阅读 · 0 评论 -
素数
素数(prime number):在大于1的自然数中,除了1和它本身 没有其他约数,这样的数称为素数;否则称为合数0和1既不是素数也不是合数,最小的素数是2素数筛法:欧拉筛,一些题目n非常大,只能用欧拉筛,复杂度为O(N)每个合数仅被它最小的质因数筛去#include<bits/stdc++.h>#define MAXN 1000005using names...原创 2018-12-15 19:08:05 · 217 阅读 · 0 评论 -
牛客33-tokitsukaze and Number Game(数论)
题目描述tokitsukaze又在玩3ds上的小游戏了,现在她遇到了难关。tokitsukaze得到了一个整数x,并被要求使用x的每一位上的数字重新排列,组成一个能被8整除的数,并且这个数尽可能大。聪明的你们请帮帮可爱的tokitsukaze,如果无法组成被8整除的数,请输出-1。保证输入不含前导0,输出也不能含前导0。输入描述:第一行包括一个正整数T(T<=1000),...原创 2018-12-08 02:29:56 · 313 阅读 · 0 评论 -
快速幂运算and 快速乘运算
ll qpow(ll a,ll b){ ll ans=1; while(b) { if(b&1) ans=(ans*a)%mod; a=(a*a)%mod; b>>=1; } return ans;}这个快速幂对1e9以上的会爆ll,要和快速乘结合处理1e18以内的 a^b%(...原创 2018-11-30 22:53:59 · 231 阅读 · 0 评论 -
I-数学题(欧拉函数)
题面描述最近,华东交通大学ACM训练基地的老阿姨被一个数学问题困扰了很久,她希望你能够帮她解决这个问题。这个数学问题是这样的,给你一个N,要求你计算gcd(a,b)表示a和b的最大公约数输入描述:多组输入,每行一个整数n(1<=n<=10^14)。输出描述:每行一个整数,表示答案。由于答案会很大你要对1000000007取模。示例1输入...原创 2018-11-19 18:07:36 · 619 阅读 · 0 评论 -
高精度运算模板(大数运算)
转载于:https://blog.csdn.net/u013615904/article/details/43373601在这里,我们约定,能用int表示的数据视为单精度,否则为高精度。所有函数的设计均采用带返回值的形式。本文包含1.高精度加法2.高精度减法3.高精度乘法1)高精度乘高精度的朴素算法2)高精度乘高精度FFT优化算法3)高精度乘单精度4.高精度除法...原创 2018-08-21 19:30:02 · 518 阅读 · 0 评论 -
hdu-1796-How many integers can you find (容斥原理)
Now you get a number N, and a M-integers set, you should find out how many integers which are small than N, that they can divided exactly by any integers in the set. For example, N=12, and M-integer ...原创 2018-08-21 10:15:52 · 137 阅读 · 0 评论 -
uva11806-Cheerleaders
1.题意描述本题大致意思是讲:给定一个广场,把它分为M行N列的正方形小框。现在给定有K个拉拉队员,每一个拉拉队员需要站在小框内进行表演。但是表演过程中有如下要求:(1)每一个小框只能站立一个拉拉队员;(2)广场的第一行,最后一行,第一列,最后一列都至少站有一个拉拉队员;(3)站在广场的四个角落的拉拉队员可以认为是同时占据了一行和一列。 运用容斥定理 结果=C(n*m,k...原创 2018-08-21 09:19:41 · 293 阅读 · 0 评论 -
逆元(模逆)
ACM-ICPC 2017 Asia Urumqi,这道题目用到了逆元还有几何计算,需要推出公式逆元模板1.(A/B)%mod==(A%mod) * finv(B,mod) %mod2.不互质:a/b %mod= a%(b*c) /b费马小定理:(要求是质数,慎用)#define ll long longusing namespace std;ll extgc...原创 2018-07-30 09:46:12 · 870 阅读 · 0 评论 -
java大数运算(BigInteger,BigDecimal)
java中大数运算非常方便但要记住一些函数java中的数学函数要加前缀(相较与c++):Math.java多组输入:Scanner in =new Scanner(System.in);while(in.hasNext()) {//多组输入//}首先是 头文件:import java.math.BigInteger;BigInteger a =in.nextBigI...原创 2018-05-13 16:07:16 · 1707 阅读 · 1 评论 -
二次剩余
二次剩余:给定两个数n,P, P为一个质数,且,求一个x,使得https://www.luogu.org/problem/P5491题意:求二次剩余若有解,则按modp后递增的顺序输出在modp意义下的全部解.若两解相同,只输出其中一个;若无解,则输出Hola!;题解:#include<bits/stdc++.h>#define ll lo...原创 2019-01-28 23:28:49 · 283 阅读 · 0 评论 -
康拓展开
康拓展开返回序列的排列数#include<bits/stdc++.h>#define ll long long#define MAXN 16using namespace std; ll fac[MAXN];//康拓展开阶乘数int a[MAXN];//序列ll cantor(int n)//传长度{ fac[0]=1; for(int i=1...原创 2019-01-23 22:35:19 · 176 阅读 · 0 评论 -
积性函数
积性函数:若一个定义在正整数域上的函数f(x)f(x)对于任意满足gcd(x,y)==1gcd(x,y)==1的x,yx,y都有f(xy)=f(x)∗f(y)f(xy)=f(x)∗f(y),则f(x)f(x)是积性函数.常见积性函数:μ(n):莫比乌斯函数φ(n):欧拉函数d(n):一个数nn的约数个数σ(n):一个数nn的约数和f(x)=x^k(k∈N)这个玩意儿也是积性函数...原创 2018-12-28 21:15:57 · 1055 阅读 · 0 评论 -
欧几里得算法gcd(辗转相除法)
摘自百度百科描述: 辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较小数除较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。a=q*b+r; 都为整数 ...原创 2018-03-19 13:10:01 · 47791 阅读 · 4 评论 -
费马大定理&勾股数
https://vjudge.net/problem/HDU-6441题意:给出n和a求b, c满足a^n + b^n = c^nac:简单的费马大定理+勾股数费马大定理:当整数n >2时,关于x, y, z的方程 x^n + y^n = z^n 没有正整数解勾股数:a^2+b^2=c^2,已知a,求b和c当 a 为奇数时,则 a = 2 * x + 1 ,解...原创 2018-12-29 00:06:52 · 346 阅读 · 0 评论 -
约数
http://acm.hdu.edu.cn/showproblem.php?pid=1492题意:丑数:仅由2,3,5,7这四种素因子构成的数求一个丑数的素因子,直接唯一分解定理分解ac:#include<bits/stdc++.h>#define ll long longusing namespace std;int main(){ ll n,an...原创 2018-12-16 18:37:14 · 310 阅读 · 0 评论