数学-----------数论
SingleK
这个作者很懒,什么都没留下…
展开
-
欧拉函数
欧拉函数定义欧拉函数是小于x的整数中与x互质的数的个数,一般用 φ(x)φ(x)φ(x) 表示。特殊的,φ(1)=1φ(1)=1φ(1)=1计算公式设 xxx 的所有素因子分别为 p1,p2,...pnp_1,p_2,...p_np1,p2,...pn,则φ(x)=x×∏1n(1−1pi)φ(x)=x×\prod^{n}_{1}(1-\frac{1}{p_i})φ(...原创 2019-05-01 11:01:34 · 733 阅读 · 0 评论 -
UVA 10622 - Perfect P-th Powers(唯一分解+gcd)
题目链接 https://cn.vjudge.net/problem/UVA-10622【题意】 给你一个非0整数 nnn,要求你把 nnn 写成 n=apn=apn=a^p 的形式,其中 aaa 和 ppp 均为整数,那么问你p最大能是多少【思路】 将 nnn 唯一分解,然后求各个素因数个数的gcd就可以了,如果是负数的话,答案必须为奇数,不断除2即可#include<bi...原创 2018-08-25 21:26:30 · 137 阅读 · 0 评论 -
UVA 10539 - Almost Prime Numbers(素数筛+打表)
题目链接 https://cn.vjudge.net/problem/UVA-10539【题意】 输入两个正整数L,R(1<=L<=R<=1e12)统计区间 [L,R] 中有多少个数字满足它本身不是素数,但只有一个素因子如4,27【思路】 只有素数的若干次幂满足要求,所以可以预处理1e6以内的素数,然后把所有可能是结果的数字都存到一个集合中,二分搜索输出答案即可...原创 2018-08-25 20:24:13 · 160 阅读 · 0 评论 -
UVA 10214 - Trees in a Wood. (欧拉函数)
题目链接 https://cn.vjudge.net/problem/UVA-10214【题意】 平面坐标系,在满足 |x|<=a,|y|<=b (a<2000,b<=2000000)|x|<=a,|y|<=b (a<2000,b<=2000000)|x|x,yx,yx,y 为正整数,能看到 (x,y)(x,y)(x,y) ...原创 2018-08-29 20:32:24 · 122 阅读 · 0 评论 -
UVA 1210 - Sum of Consecutive Prime Numbers(暴力枚举)
题目链接 https://cn.vjudge.net/problem/UVA-1210【题意】 输入整数n(2<=n<=10000)有多少种方案可以把n写成若干个连续素数的和?如41有3种方案 2+3+5+7+11+13,11+14+17,41【思路】 把10000以内的素数筛出来求一下前缀和,然后暴力枚举起点和终点更新最后的答案数组即可#include<bits...原创 2018-08-25 10:35:07 · 117 阅读 · 0 评论 -
UVA 10820 - Send a Table(欧拉函数)
题目链接 https://cn.vjudge.net/problem/UVA-10820【题意】 输入n(n&lt;=50000),求出有多少个二元组(x,y)满足1&lt;=x,y&lt;=n 且x,y互素【思路】 在符合要求的二元组中,除了(1,1)之外其它的(x,y)中的x和y都不想等,假设满足x#include&lt;bits/stdc++.h&gt;using name...原创 2018-08-21 23:18:54 · 126 阅读 · 0 评论 -
UVA 1635 - Irrelevant Elements(唯一分解+组合数)
题目链接 https://cn.vjudge.net/problem/UVA-1635【题意】 对于给定的n个数a[1],a[2],…a[n],依次求出相邻两项之和,得到一个新数列.重复这个操作最后结果变成一个数,问这个数对m取模后与原数列中的哪些项无关?比如n=3,m=2时,第一次求和得到a1+a2,a2+a3,再求和得到a1+2*a2+a3,它对2取模之后就和第二项无关了(1&lt;=n...原创 2018-08-21 22:25:51 · 133 阅读 · 0 评论 -
UVA 11040 - Add bricks in the wall(解方程)
题目链接 https://cn.vjudge.net/problem/UVA-11040【题意】 45块砖头按如下方式排列,每块石头上有一个整数,除了最后一行每个石头上的整数等于支撑它的两块石头数字和. 目前已知奇数行左数奇数个位置石头的数字,要你求出所有石头上的数字,保证有唯一解 【思路】 取任意一块小的部分即可计算,有三个已知量和三个未知量,解一下三元一次方程组即可#incl...原创 2018-08-24 16:54:57 · 397 阅读 · 0 评论 -
UVA12716 - GCD XOR(埃氏筛思想+数论)
题目链接 https://cn.vjudge.net/status/#un=&OJId=UVA&probNum=&res=0&language=&onlyFollowee=false【题意】 输入整数n(1<=n<=3e7)问有多少对整数(a,b)满足1<=b<=a<=n 且 gcd(a,b)=a xor b【思路】 ...原创 2018-08-21 16:16:18 · 124 阅读 · 0 评论 -
UVA 11440 - Help Tomisu(数论好题)
题目链接 https://cn.vjudge.net/problem/UVA-11440【题意】 输入整数 nnn 和 mmm ,统计区间 [2,n!][2,n!][2,n!] 之间有多少个整数 xxx 满足 xxx 的所有素因子都大于 m (2<=n<=107,1<=m<=n,n−m<=105)m (2<=n<=107,1<...原创 2018-08-28 21:06:51 · 185 阅读 · 0 评论 -
UVA 1393 - Highways(数论+DP)
题目链接 https://cn.vjudge.net/problem/UVA-1393【题意】 有一个n行m列的点阵(1<=n,m<=300)一共有多少条非水平非竖直的线穿过其中的两个点?【思路】 递推,设 ans[i][j]ans[i][j]ans[i][j] 为 i∗ji∗ji*j 个方块对应的答案,那么 ans[i][j]=ans[i][j−1]+ans[i−1][j...原创 2018-08-29 23:00:53 · 238 阅读 · 0 评论 -
UVA 294 - Divisors (唯一分解)
题目链接 https://cn.vjudge.net/problem/UVA-294【题意】 输入两个整数L,R(1<=L,R<=1e9,U-L<=10000)统计区间 [L,U] 中的整数哪一个的正约数最多,如果有多个输出最小值【思路】 暴力枚举每一个数字,将每个数字唯一分解,然后求出约数的个数取最大即可#include<bits/stdc++.h>...原创 2018-08-25 23:03:29 · 116 阅读 · 0 评论 -
51Nod 1188 - 最大公约数之和 V2(欧拉函数)
题目链接 https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1188【题目描述】 给出一个数N,输出小于等于N的所有数,两两之间的最大公约数之和。相当于求 Ans=∑i=1i&amp;lt;n∑j=i+1j&amp;lt;ngcd(i,j)Ans=∑i=1i&amp;lt;n∑j=i+1j&amp;lt;ngcd(i,j)Ans=\sum^{i∑i...原创 2018-09-04 20:04:44 · 279 阅读 · 1 评论 -
51Nod 1350 - 斐波那契表示(找规律)
【思路】先考虑如何计算 F(n)F(n)F(n) ,如果 nnn 是斐波那契数,那么 F(n)=1F(n)=1F(n)=1 ,否则尽量把 nnn 减去最大可减的斐波那契数,并重复这一过程,也就是 F(n)={n=1,n是fib数F(n−m)+1,n 不是fib数 F(n)=\begin{cases} n=1, &amp; \text {$n$是fib数} \\ F(n-m)+...原创 2019-03-05 17:47:56 · 297 阅读 · 0 评论 -
51Nod 1135 - 原根(数论)
【题目描述】【思路】一个素数 ppp 的原根有 p−1p-1p−1 个,求解方法是对 p−1p-1p−1 进行唯一分解,设 p−1=p1a1p2a2...pnanp-1=p_1^{a_1}p_2^{a_2}...p_n^{a_n}p−1=p1a1p2a2...pnan,则对于一个数 ggg,ggg 是模 ppp 原根的充要条件是 gp−1pi≠1 (mod p...原创 2019-01-20 22:01:58 · 249 阅读 · 0 评论 -
51Nod 1225 - 余数之和(整除分块)
【题目描述】【思路】整除分块+等差数列设 p=⌊ki⌋,k&nbsp;mod&nbsp;i=k−pip =\lfloor \frac{k}{i} \rfloor , k \ mod \ i =k-pip=⌊ik⌋,k&nbsp;mod&nbsp;i=k−pi 如果有⌊ki+1⌋=p,k&nbsp;mod&nbsp;(i+1)=k−p(i+1)=k−pi−p=k&nbsp;mod&原创 2018-11-04 23:37:42 · 261 阅读 · 0 评论 -
51Nod 1217 - Minimum Modular(数论)
【题目描述】【思路】这个题我们可以考虑从小到大枚举m(从max(1,n-k)到max(a[i])+1),然后判断能否在删不超过k个数的情况下满足每个数模m都互不相同。对于模m的情况,a[i]≡a[j](mod m)当且仅当a[i]-a[j]是m的倍数,我们可以先预处理出a[i]-a[j]=w的个数cnt[w],然后对于模m的情况,就只用考虑删m|a[i]-a[j]的i或j了,根据调和级数我...原创 2018-11-04 21:56:44 · 203 阅读 · 0 评论 -
51Nod 1028 - 大数乘法 V2(FFT)
【题目描述】【思路】FFT的基础应用,把一个大数从低位到高位看成一个多项式,大数想乘看成多项式想乘,多项式的自变量 xxx 表示数字 101010,乘完进位即可得到结果#include<bits/stdc++.h>using namespace std;const double PI=acos(-1.0);const int maxn=400005;struct Co...原创 2018-10-31 19:13:45 · 265 阅读 · 0 评论 -
快速傅里叶变换FFT(模板)
转载出处 https://blog.csdn.net/f_zyj/article/details/76037583摘自大佬的博客 FFT(最详细最通俗的入门手册)const double PI=acos(-1.0);// 复数结构体struct Complex { double x,y; // 实部和虚部 x + yi Complex(double _x=0.0, doub...转载 2018-10-31 17:12:29 · 453 阅读 · 0 评论 -
51Nod 1678 - lyk与gcd(分解因子+容斥)
题目链接 https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1678【题目描述】 这天,lyk又和gcd杠上了。 它拥有一个nnn个数的数列,它想实现两种操作。 1:将 aiaia_i 改为 bbb 2:给定一个数i,求所有 gcd(i,j)=1gcd(i,j)=1gcd(i,j)=1 时的 ajaja_j...原创 2018-09-02 20:42:22 · 149 阅读 · 0 评论 -
51Nod - 1040(欧拉函数)
题目链接 https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040【题目描述】 给出一个n,求1-n这n个数,同n的最大公约数的和。比如:n = 6 1,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在一起 = 15Input 1个数N(N &lt;= 10^9) Output 公...原创 2018-09-02 12:37:56 · 129 阅读 · 0 评论 -
UVA 1363 - Joseph's Problem(整除分块)
题目链接 https://cn.vjudge.net/problem/UVA-1363【题意】 输入正整数n,k(1&lt;=n,k&lt;=109)n,k(1&lt;=n,k&lt;=109)n,k(1∑i=1nk&nbsp;mod&nbsp;i∑i=1nk&nbsp;mod&nbsp;i\sum^{n}_{i=1}k \ mod \ i【思路】 当n&原创 2018-08-28 19:22:42 · 129 阅读 · 0 评论 -
UVA 10375 - Choose and divide(唯一分解定理)
题目链接 https://cn.vjudge.net/problem/UVA-10375【题意】 组合数的定义为C(n,m)=n!/(m!(n-m)!),输入整数p,q,r,s(p>=q,r>=s, 0<=p,q,r,s<=10000)计算C(p,q)/C(r,s),输出保证在1e8范围内,保留5位小数【思路】 直接乘起来肯定不现实,可以把1~10000的素数先...原创 2018-08-21 14:53:36 · 197 阅读 · 0 评论 -
UVA 12169 - Disgruntled Judge(拓展欧几里得)
题目链接 https://cn.vjudge.net/problem/UVA-12169【题意】 有一个长度为T的整数序列x,已知x[i]=(a*x[i]-1+b) mod 10001,且告诉你x[1],x[3]………x[2*T-1],让你求出其偶数项分别是多少,输出任意解即可【思路】 因为取模的范围不大,所以可以枚举a(0~10000),然后根据x[1],x[3]计算出b,然后再去验...原创 2018-08-21 14:26:38 · 154 阅读 · 0 评论 -
唯一分解定理(模板)
唯一分解定理,找出一个数n的所有素因子typedef long long ll;ll fac[10050], num;//素因数,素因数的个数void init(ll n) {//唯一分解定理 num = 0; ll cpy = n; int m = (int)sqrt(n + 0.5); for (int i = 2; i <= m; ++i) ...原创 2018-02-25 20:51:45 · 1337 阅读 · 0 评论 -
逆元求解(模板)
在模p的前提下,a的逆元存在的充要条件是a和p互素,即gcd(a,b)=1//拓展欧几里德算法求逆元typedef long long ll;void gcd(ll a, ll b, ll &amp;amp;d, ll&amp;amp; x, ll&amp;amp; y) { if (0 == b) { d = a; x = 1; y = 0; } else { gcd(b, a%b, d, ...原创 2018-02-25 20:22:30 · 344 阅读 · 0 评论 -
POJ 2773 - Happy 2006(暴力+思维 / 二分+容斥)
题目链接 https://vjudge.net/problem/POJ-2773【题意】 给定两个整数m和k,找到第k个与m互素的数(互素的数从小到大排列),其中(1 <= m <= 1000000,1 <= k <= 100000000 )【思路】 有两种思路,先说一种比较暴力的思路,比较好理解。有一个重要的结论要知道是gcd(a+b*t,b)=gcd(a,b...原创 2018-02-25 18:32:53 · 172 阅读 · 0 评论 -
POJ 1284 - Primitive Roots(欧拉函数)
题目链接 https://vjudge.net/problem/POJ-1284【题意】 给定一个素数p,求p的原根个数。满足{ (x^i mod p) | 1 <= i <= p-1 } == { 1, …, p-1 }的x称为模p的原根。相关定理如下 如果p有原根,则它恰有φ(φ(p))个不同的原根,φ为欧拉函数,p为素数,当然φ(p)=p-1,因此就有φ(p-1)个原...原创 2018-02-25 11:25:58 · 195 阅读 · 0 评论 -
欧几里德算法(模板)
欧几里德算法求最大公约数typedef long long ll;//gcd(a,b)返回a,b的最大公约数ll gcd(ll a, ll b) { return 0 == b ? a : gcd(b, a%b);}扩展欧几里德算法typedef long long ll;//求整数x和y,使得ax+by=d,且|x|+|y|最小,其中d=gcd(a,b)//...原创 2018-02-24 21:34:10 · 130 阅读 · 0 评论 -
POJ 1006 - Biorhythms(中国剩余定理)
题目链接 https://cn.vjudge.net/problem/POJ-1006【题目描述】 人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,智力周期的高峰,人会思维敏捷,精力容易高度集中。因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天。对于每个人,我们想知道...原创 2018-03-11 11:48:57 · 264 阅读 · 0 评论 -
51Nod 1016 - 水仙花数
题目链接 http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1016【题目描述】 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153,1634 = 1^4 + 6^4 + 3^4 + 4^4)。 给出一个整数M,求 >= ...原创 2018-02-22 20:51:27 · 159 阅读 · 0 评论 -
POJ 1845 - Sumdiv(唯一分解+递推)
题目链接 https://vjudge.net/problem/POJ-1845【题目描述】 Consider two natural numbers A and B. Let S be the sum of all natural divisors of A^B. Determine S modulo 9901 (the rest of the division of S by 9901)...原创 2018-02-28 16:47:55 · 234 阅读 · 0 评论 -
CodeForces 546D - Soldier and Number Game(埃氏筛)
题目链接 https://cn.vjudge.net/problem/CodeForces-546D【题意】 T组数据(T<=1e6)每组数据给定两个数a,b,问a!/b!(a>=b, a,b<=5e6)的素因子个数有多少个?【思路】 这么多组数据肯定要预处理,设f[x]为x的素因子个数,我们可以利用埃氏筛的思想把f[2]~f[5e6]计算出来,但是题目中还有个阶乘,...原创 2018-04-14 13:57:37 · 118 阅读 · 0 评论 -
51Nod 1119 - 机器人走方格 V2(组合数+逆元)
题目链接 https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1119M * N的方格,一个机器人从左上走到右下,只能向右或向下走。有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果。Input 第1行,2个数M,N,中间用空格隔开。(2 <= m,n <= 100000...原创 2018-05-08 20:32:33 · 238 阅读 · 0 评论 -
51Nod 1130 - N的阶乘的长度 V2(斯特林近似)
题目链接 https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1130输入N求N的阶乘的10进制表示的长度。例如6! = 720,长度为3。 Input 第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000) 第2 - T + 1行:每行1个数N。(1 <= N <...原创 2018-05-20 20:02:56 · 188 阅读 · 0 评论 -
UVA 11582 - Colossal Fibonacci Numbers!(取模运算)
题目链接 https://cn.vjudge.net/problem/UVA-11582【题意】 输入两个非负整数a,b和正整数n(0<=a,b<=2^64, 1<=n<=1000),你的任务是计算f(a^b)除以n的余数,其中f(0)=0,f(1)=1,当i>=0时,f(i+2)=f(i+1)+f(i)【思路】 所有计算都会对n取模,并且n的范围很小,设...原创 2018-08-21 13:08:11 · 120 阅读 · 0 评论 -
UVA 1644 - Prime Gap(埃氏筛)
题目链接 https://cn.vjudge.net/problem/UVA-1644【题意】 输入一个数字n(0 < n <= 1299709)求它后一个素数与前一个素数的差值,输入是素数时输出0.【思路】 将输入范围内所有素数筛出来然后二分即可#include<bits/stdc++.h>using namespace std;const in...原创 2018-08-20 23:09:01 · 181 阅读 · 0 评论 -
UVA 1642 - Magical GCD(数论综合)
题目链接 https://cn.vjudge.net/problem/UVA-1642【题意】 给出一个长度在 100 000 以内的正整数序列,大小不超过 1012101210^ {12} 求一个连续子序列,使得在所有的连续子序列中,它们的gcd值乘以它们的长度最大【思路】 暴力枚举右端点,然后在枚举左端点时,我们对gcd相同的只保留一个,那就是左端点最小的那个,只有这样才能保证是最...原创 2018-08-30 21:30:41 · 331 阅读 · 0 评论 -
UVA 10886 - Standard Deviation(暴力)
题目链接 https://cn.vjudge.net/problem/UVA-10886【题意】 给你一个随机数发生器,输入seed的初始值,你的任务是求出它得到的前n个随机数的标准差,保留5位小数(1<=n<=1e7,0<=seed<2^64)unsigned long long seed;long double gen(){ static const...原创 2018-08-27 12:16:52 · 501 阅读 · 0 评论 -
UVA 11526 - H(n) (整除分块)
题目链接 https://cn.vjudge.net/problem/UVA-11526【题意】 输入一个整数 nnn (int范围内) 求下面式子的值 ∑i=1n⌊ni⌋∑i=1n⌊ni⌋\sum^{n}_{i=1}\lfloor \frac{n}{i} \rfloor【思路】 直接计算的复杂度是O(n)O(n)O(n)的,不满足要求,但是可以利用整数分块优化到O(n−−√)O(n)...原创 2018-08-27 11:17:10 · 193 阅读 · 0 评论