
数学-数论
文章平均质量分 77
FDU_Nan
去做一个会思考,善于思考的人儿。
展开
-
hdu Calculation 2(初涉欧拉函数)
http://acm.hdu.edu.cn/showproblem.php?pid=3501原创 2014-05-04 21:27:01 · 814 阅读 · 0 评论 -
hdu 2837 Calculation(指数循环节)
http://acm.hdu.edu.cn/showproblem.php?pid=2837不是自己想出来的。原创 2014-08-11 17:24:21 · 789 阅读 · 0 评论 -
a^b%c 的三种形式
求a^b%c,(1原创 2014-08-10 16:47:21 · 2875 阅读 · 0 评论 -
hdu 4549 M斐波那契数列(矩阵快速幂,快速幂降幂)
http://acm.hdu.edu.cn/showproblem.php?pid=4549f[0] = a^1*b^0%p,f[1] = a^0*b^1%p,f[2] = a^1*b^1%p.....f[n] = a^fib[n-1] * b^fib[n-2]%p。这里p是质数,且a,p互素,那么我们求a^b%p,当b很大时要对b降幂。因为a,p互素,那么由费马小定理原创 2014-08-11 13:44:05 · 1551 阅读 · 0 评论 -
poj 2417 Discrete Logging(A^x=B(mod c),普通baby_step)
http://poj.org/problem?id=2417A^x = B(mod C),已知A,B,C,求x。这里C是素数,可以用普通的baby_step。在寻找最小的x的过程中,将x设为i*M+j。从而原始变为A^M^i * A^j = B(mod C),D = A^M,那么D^i * A^j = B(mod C ),预先将A^j存入hash表中,然后枚举i(0~M-1原创 2014-08-11 21:13:30 · 1343 阅读 · 0 评论 -
poj 3243 Clever Y&&hdu 2815 Mod Tree(扩展baby_step)
http://poj.org/problem?id=3243求A^x = B(mod C) ,C是任意的数。框架都在这里了:http://hi.baidu.com/aekdycoin/item/236937318413c680c2cf29d4理解:http://blog.youkuaiyun.com/ivan_zjj/article/details/7597109#in原创 2014-08-12 10:40:35 · 1002 阅读 · 0 评论 -
hdu 1695 GCD(欧拉函数+容斥原理)
http://acm.hdu.edu.cn/showproblem.php?pid=1695很经典的题,同时感觉也很难。在区间[a,b]和[c,d]内分别任意取出一个数x,y,使得gcd(x,y) = k。问这样的(x,y)有多少对。可以认为a,c均为1,而且gcd(5,7)与gcd(7,5)是同一种。因为gcd(x,y) = k,那么gcd(x/k,y/k) = 1,也就是求原创 2014-08-13 17:34:34 · 1078 阅读 · 0 评论 -
基本的约瑟夫环问题
http://poj.org/problem?id=3517讲解n个人,编号为1~n,每次数到m的人出圈,最后一个出圈的人的编号。f[1] = 0;for(int i = 2; i <= n; i++){ f[i] = ( f[i-1] + m)%i;}printf("%d\n",f[n]+1);这里第一次出圈的人的编号是m,然后原创 2014-08-08 18:56:31 · 935 阅读 · 0 评论 -
hdu 5072 Coprime(同色三角形+容斥)
http://acm.hdu.edu.cn/showproblem.php?pid=5072单色三角形模型现场赛和队友想了3个小时,最后发现想跑偏了。感觉好可惜的一道题,要是知道这个模型....就可以轻松的拿银了啊。。。题意不再赘述,就是求同色三角形的个数。总的三角形的个数是C(n,3),只需减去不同色的三角形即可。对于每个点(数),与它互质的连红边,不互质的连蓝边原创 2014-10-27 16:48:45 · 2207 阅读 · 0 评论 -
hdu 2841 Visible Trees(容斥原理)
http://acm.hdu.edu.cn/showproblem.php?pid=2841有一个n*m的方格,从(1,1)开始,每个点有一棵树,一个人站在(0,0)点,问他能看到几棵树。当(0,0)和另外的点在一条直线上时他只能看到最近的一棵。题目意在求在m*n的方格中有多少种y/x,因为两个y/x相等的点只能看到一个。有多少种y/x也就是有多少 个(x,y)x与y互质。原创 2014-10-30 00:04:04 · 1226 阅读 · 0 评论 -
hdu 4135 Co-prime(容斥原理)
http://acm.hdu.edu.cn/showproblem.php?pid=4135求连续区间[a,b]内与n互质的数的个数。因为a,b相当大,考虑用容斥原理。只需先求出[a,b]内与n不互质的数的个数,等于[1,b]内与n不互质的个数 - [1,a-1]内与n不互质的个数。问题转化为求【1,m】内与n不互质的数的个数。先对n分解质因子,[1,m]内是n的质因子的倍数的原创 2014-10-29 21:32:25 · 1107 阅读 · 0 评论 -
hdu 2421 Deciphering Password(约数个数问题)
http://acm.hdu.edu.cn/showproblem.php?pid=2421A^B 可以写成 p1^e1 * p2^e2 * .....*pk^ek。(A,B 求 ∏1^3+2^3+...+(ei+1)^3 % 10007的值。根据质因子分解定理知A = p1^a1 * p2^a2 *.....* pk^ak,那么A^B = p1^(a1*B) * p2原创 2014-11-18 10:59:30 · 1327 阅读 · 0 评论 -
spoj 4168. Square-free integers(容斥)
http://www.spoj.com/problems/SQFREE/求出1~n(n 同样的,考虑问题的逆问题,就是至少能被一个完全平方数整除的数的个数。所以答案就是 n - ( 1~n内完全平方数的倍数的个数 )。所以可以枚举i( 2 36就被多计算的一次,所以减掉,就是容斥。 和上题类似,看i的质因子数是奇数还是偶数,是奇数就加上,偶数就减掉,注意i的原创 2014-10-31 15:11:15 · 1778 阅读 · 1 评论 -
UVA 4683 - Find The Number
uva 4683这题的意思是给一个集合,最多有12个元素。找出只能被集合中一个仅且一个数整除的第n个数。(n 我用容斥原理做的。先把能被每个数整除的元素个数累加,当然会有重复的。若某个数由集合中两个数组成,那么要减去所有这个数的整数倍,而且要减两次,因为他是两个数的公约数,而当某个数是其中三个数的公约数,那他一定也是两个数的公约数,这样就多减了c[k][2]个,就得加上。以原创 2014-11-03 20:31:05 · 1025 阅读 · 0 评论 -
hdu 4059 The Boss on Mars(容斥)
http://acm.hdu.edu.cn/showproblem.php?pid=4059定义S = 1^4 + 2^4 + 3^4+.....+n^4,现在减去与n互质的数的4次方,问共减少了多少。容斥原理,可以先把与n不互质的数的4次方求出来。那就先对n进行质因子分解,对质因子的组合运用容斥原理,质因子个数为奇数就加,偶数就减。其实与求[1,n]内与n互质的数的个数类原创 2014-11-02 20:34:39 · 1015 阅读 · 0 评论 -
ural 1091. Tmutarakan Exams(容斥)
http://acm.timus.ru/problem.aspx?space=1&num=1091从1~s中选出k个数,使得k个数的最大公约数大于1,问这样的取法有多少种。(2同素数四元组问题类似,可以参考http://blog.youkuaiyun.com/u013081425/article/details/40653895只不过这里是选出k个,不是4个。#incl原创 2014-11-02 15:37:57 · 1079 阅读 · 0 评论 -
spoj 6285. Another Game With Numbers(容斥)
http://www.spoj.com/problems/SQFREE/求1~n内不能被一个集合整除的数的个数。简单的容斥原理,因为集合的个数 k 复杂度(2^k*k*log x)#include #include #include #include #include #include #include #include #include原创 2014-10-31 14:11:21 · 1089 阅读 · 0 评论 -
hdu 4407 Sum(容斥)
http://acm.hdu.edu.cn/showproblem.php?pid=4407起初有n个数1~n,这里有m个操作,两种类型。操作1:求出[x,y]区间内与p互质的数的和。操作2:将第x位置的数变成y。对于每一个询问,输出结果。因为只有1000次操作,而且起初是有序的。那么对于第i个询问,我们先忽略i之前的所有的第2种操作,即认为n个数为1~n,根据容斥原理求出原创 2014-11-04 20:22:24 · 1039 阅读 · 0 评论 -
hdu 3221 Brute-force Algorithm(快速幂取模,矩阵快速幂求fib)
http://acm.hdu.edu.cn/showproblem.php?pid=3221一晚上搞出来这么一道题。。Mark。给出这么一个程序,问funny函数调用了多少次。我们定义数组为所求:f[1] = a,f[2] = b, f[3] = f[2]*f[3]......f[n] = f[n-1]*f[n-2]。对应的值表示也可为a^1*b^0%p,a^0*b^1原创 2014-08-10 23:27:59 · 1075 阅读 · 0 评论 -
poj 1012 Joseph(约瑟夫环求每次出圈人的序号)
http://poj.org/problem?id=1012题意:原创 2014-08-08 21:08:37 · 2051 阅读 · 0 评论 -
poj 1781 In Danger(约瑟夫环,找规律)
http://poj.org/problem?id=1781约瑟夫环的模板,每次数到2的人出圈。但直接求会TLE,n太大。打表发现答案和n有关系。当n是2的幂的时候,答案都是1,不是2的幂的时候都与小于2的幂那个数相差差值的2的倍数。#include #include #include #include #include #include #includ原创 2014-08-08 19:59:05 · 1372 阅读 · 0 评论 -
poj 2992 Divisors(求组合数的因子个数)
http://poj.org/problem?id=2992原创 2014-04-27 19:36:58 · 1095 阅读 · 0 评论 -
zoj 2562 More Divisors(反素数)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1562题意:求小于等于n(1 16)的约数个数最多的数。反素数根据反素数的定义,这个题就是让求最大的反素数。反素数搜索的依据的两个重要的性质:反素数的质因子是从2开始的连续的素数;p=2^t1*3^t2*5^t3*7^t4.....必然t1>=原创 2014-07-24 14:51:47 · 1273 阅读 · 0 评论 -
poj 2689 Prime Distance(大区间筛素数)
http://poj.org/problem?id=2689题意:给出一个大区间[L,U],分别求出该区间内连续的相差最小和相差最大的素数对。因为L2147483647,直接筛素数是不行的,数组就开不了。但是可以根据素数筛的原理。我们先筛出sqrt(2147483647)以内的素数,然后拿这些素数去筛[L,U]之间的素数,即两次素数筛。但是L,U还是很大,但U-L#includ原创 2014-07-24 09:43:48 · 990 阅读 · 0 评论 -
poj 2773 Happy 2006(欧拉函数应用)
http://poj.org/problem?id=2773题意:输入n,k,求与n不互素的第k个数,k可能大于n。思路:以n=6为例,与6互素的数有一定规律。{1,5},{7,12},{13,18}......,发现在[1,n],[n+1,n*2]......[m*n+1,(m+1)*n]区间内素数个数相同,且对应位置的数都相差n的整数倍。因此只要求出[1,n]内的与n互原创 2014-07-25 17:08:38 · 1104 阅读 · 0 评论 -
poj 2478 Farey Sequence(基于素数筛法求欧拉函数)
http://poj.org/problem?id=2478求欧拉函数的模板。初涉欧拉函数,先学一学它基本的性质。1.欧拉函数是求小于n且和n互质(包括1)的正整数的个数。记为φ(n)。2.欧拉定理:若a与n互质,那么有a^φ(n) ≡ 1(mod n),经常用于求幂的模。3.若p是一个质数,那么φ(p) = p-1,注意φ(1) = 1。4.欧拉函数是积性函数:原创 2014-06-15 17:15:36 · 1009 阅读 · 0 评论 -
poj 2154 Color(polya计数 + 欧拉函数优化)
http://poj.org/problem?id=2154大致题意:由n个珠子,n种颜色,组成一个项链。要求不同的项链数目,旋转后一样的属于同一种,结果模p。n个珠子应该有n种旋转置换,每种置换的循环个数为gcd(i,n)。如果直接枚举i,显然不行。但是我们可以缩小枚举的数目。改为枚举每个循环节的长度L,那么相应的循环节数是n/L。所以我们只需求出每个L有多少个i满足gc原创 2014-06-15 19:23:52 · 1152 阅读 · 0 评论 -
poj 2891 Strange Way to Express Integers(中国剩余定理)
http://poj.org/problem?id=2891题意:求解一个数x使得 x%8 = 7,x%11 = 9; 若x存在,输出最小整数解,否则输出-1;ps:思路:这不是简单的中国剩余定理问题,因为输入的ai不一定两两互质,而中国剩余定理的条件是除数两两互质; 这是一般的模线性方程组,对于 X mod m1=r1 X mod m原创 2014-06-10 21:50:50 · 921 阅读 · 0 评论 -
poj 1284 Primitive Roots(原根+欧拉函数)
http://poj.org/problem?id=1284原根题意:对于奇素数p,如果存在一个x(1直接枚举的,TLE了。看到discuss里面说是求原根,答案直接是phi[p-1]。百度百科上直接就给出答案了。m有原根的充要条件是m= 1,2,4,p,2p,p^n,其中p是奇素数,n是任意正整数。它所含原根的个数是phi[phi[m]],因为phi[m]=m原创 2014-07-24 18:44:50 · 972 阅读 · 0 评论 -
poj 3090 && poj 2478(法雷级数,欧拉函数)
http://poj.org/problem?id=3090法雷级数法雷级数的递推公式很简单:f[1] = 2; f[i] = f[i-1]+phi[i]。该题是法雷级数的变形吧,答案是2*f[i]-1。#include #include #include #include #include #include #include #include原创 2014-07-24 20:11:23 · 904 阅读 · 0 评论 -
poj 3101 Astronomy(分数的最小公倍数)
http://poj.org/problem?id=3101大致题意:求n个运动周期不完全相同的天体在一条直线上的周期。这题我是看着解题报告写的,用到了物理中的角速度什么的。因为n个天体的周期已知,那么它们的角速度为vi = 2*pi/Ti,若统一选第0个天体为参照物,那么其余天体的相对速度vi' = 2*pi*(T0-Ti)/(T0*Ti)(把周期T相同的原创 2014-06-11 02:11:03 · 1382 阅读 · 0 评论 -
poj 2115 C Looooops(模线性方程)
http://poj.org/problem?id=2115题意:对于C的循环(for i = A; i != B; i+=C)问在k位存储系统内循环多少次结束; 若循环有限次能结束输出次数,否则输出 FOREVER;解:设x为循环次数; (A+C*x)%2^k = B; 则 C*x+A = 2^k*y+B; 所以 C*原创 2014-06-11 10:47:48 · 862 阅读 · 0 评论 -
poj 1061 青蛙的约会(扩展欧几里得)
http://poj.org/problem?id=1061思路:设它们跳了t次相遇,那么有 (x+t*m)-(y+t*n) = z*l(z是一个整数,表示它们路程差是l的z倍),变形得(n-m)*t + z*l = (x-y);令 a = n-m; b = l; c = x-y;那么原式变为 a*t + z*b = c;扩展欧几里得模板,求解形如a*x + b原创 2014-06-10 20:55:11 · 889 阅读 · 0 评论 -
poj 1811 Prime Test(大素数判定和素因子分解)
http://poj.org/problem?id=1811原创 2014-07-24 16:20:17 · 959 阅读 · 0 评论 -
扩展欧几里得算法&同余方程&模m乘法逆元详解
复习:求最大公约数算法int gcd(int a, int b){ return b ? gcd(b, a % b) : a;}首先介绍扩展欧几里得定理:对于两个不全为0的整数a,b,必存在一组解x,y,使得ax+by=gcd(a,b)。换句话说,形如ax+by的最小正整数等于gcd(a,b)。实现代码如下:(一般题目都要用64位)(复杂度:转载 2014-03-09 11:01:24 · 2029 阅读 · 0 评论 -
快速幂取模
快速幂取模:int PowerMod(int a, int b, int c){ int ans = 1; a = a % c; while(b>0) { if(b&1) ans = (ans * a) % c; a = (a * a) % c; b >>= 1; } return原创 2014-04-22 10:12:02 · 941 阅读 · 0 评论 -
中国剩余定理
中国剩余定理用于求解 x≡ai(mod mi),其中mi两两互质,x有唯一解。令M为mi的乘积,wi = M/mi,wi关于模mi的逆元为pi,即满足wi*pi + mi*qi = 1.则上述方程组等价于 x≡ w1*p1*a1 + w2*p2*a2 +......+wk*pk*ak(mod M)...............................................原创 2014-08-05 19:58:11 · 1152 阅读 · 0 评论 -
归并排序求逆序对数
http://poj.org/problem?id=2299给出n个数,每次只能交换两个相邻的数,问使得n个数有序最少需要交换多少次。归并排序的模板,重在理解,小白书p144.#include #include #include #include #include #include #include #include #include #include原创 2014-08-06 08:27:04 · 1109 阅读 · 0 评论 -
spoj 4191. Sky Code(容斥)
http://www.spoj.com/problems/MSKYCODE/给出一个集合,含有n个元素,每次任意从中取出4个使得他们的gcd是1,问有多少种取法。可以先考虑问题的反面,就是取出的4个数的gcd为d,d > 1的方案数。总的方案数c(n,4),减去d > 1的就是问题所求。对于任意一个d(d > 1),总能分解成若干素数的乘积。那么就要考虑到把d和素数原创 2014-10-31 14:30:47 · 1537 阅读 · 0 评论