
算法-数论
一些经典数论题的讲解
哦摩西罗伊
这个作者很懒,什么都没留下…
展开
-
hdu 2421
Xiaoming has just come up with a new way for encryption, by calculating the key from a publicly viewable number in the following way:Let the public key N = A B, where 1 <= A, B <= 1000000, and a 0原创 2015-08-05 12:17:59 · 408 阅读 · 0 评论 -
pku 1061
Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。原创 2015-09-11 19:40:29 · 445 阅读 · 0 评论 -
拓展的欧几里得算法
这个算法比较简单,就是欧几里得的逆向过程,应该用递归来实现。int gcd(int a,int b){ int t,d; if(b==0) { x=1; y=0; //不明处1return a; } d=gcd(b,a%b); t=x; x=y; y=t-(a/b)*y; //不明处2r原创 2015-09-11 18:38:11 · 325 阅读 · 0 评论 -
hdu 1576
A/BTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3278 Accepted Submission(s): 2486Problem Description要求(A/B)%9973,但由于A很大,我们只给出n原创 2015-09-17 21:09:57 · 306 阅读 · 0 评论 -
简单的快速幂
快速幂取模用法:用于求解 a 的 b 次方,而b是一个非常大的数,用O(n)的复杂度会超时。那么就需要这个算法,注意它不但可以对数求次幂,而且可用于矩阵快速幂。假如求 x ^ n 次方我们可以把 n 表示为 2^k1 + 2k2 + 2^k3....,可以证明所有数都可以用前式来表示。(其实就是二进制表示数的原理)那么 x^n = x^2^k1 *原创 2015-09-16 20:50:42 · 377 阅读 · 0 评论 -
hdu 1370
Problem DescriptionSome people believe that there are three cycles in a person's life that start the day he or she is born. These three cycles are the physical, emotional, and intellectual cycles, a原创 2015-09-19 11:48:48 · 295 阅读 · 0 评论 -
二进制的最大公约数(高精度)
二进制的最大公约数对于任意给定的两个二进制数B1,B2 (B1,B2不超过1000位),你的任务是在最短时间内说出它们的最大公约数。【输入】第一行输入一个正整数n(0≤n≤1000),表示测试数据的次数随后有n行测试数据,每行有两个二进制数,两个数据之间有一个或多个空格。 【输出】输出每行给定的两个二进制数的最大公约数 【 输入样例 】 2原创 2015-10-10 20:33:05 · 1159 阅读 · 0 评论 -
hdu 2588
Problem DescriptionThe greatest common divisor GCD(a,b) of two positive integers a and b,sometimes written (a,b),is the largest divisor common to a and b,For example,(1,2)=1,(12,18)=6. (a,b) can原创 2015-09-23 20:35:52 · 392 阅读 · 0 评论 -
fzu 1752
DescriptionGiven A,B,C, You should quickly calculate the result of A^B mod C. (1InputThere are multiply testcases. Each testcase, there is one line contains three integers A, B and C原创 2015-08-03 17:06:18 · 398 阅读 · 0 评论 -
poj 3301
After a day trip with his friend Dick, Harry noticed a strange pattern of tiny holes in the door of his SUV. The local American Tire store sells fiberglass patching material only in square sheets. Wha原创 2015-08-04 16:01:35 · 382 阅读 · 0 评论 -
素因子分解
素因子分解Description假设x是一个正整数,它的值不超过65535(即1Input输入的第一行含一个正整数k (1Output每个测试例对应一行输出,输出x的素数乘积表示式,式中的素数从小到大排列,两个素数之间用“*”表示乘法。Sample Input 211 9828 Sample Output112*2*3*3*3*7*13本原创 2015-08-02 20:10:26 · 1152 阅读 · 0 评论 -
容斥定理的简单应用
本题首先给出一个数n和m,以及m个数,要求从1到n内不是是m个数中任一个数的倍数的数的个数。本题原理比较简单,容斥原理,保证既不遗漏又不重复。本题的重点在如何用for循环来进行求和,其中用到了位运算(本人也是第一次用2333)多余的话不说,附上代码 #include using namespace std;long long gcd(long lo原创 2015-08-02 19:39:58 · 469 阅读 · 0 评论 -
阶乘的素因子分解
有的时候我们需要对n!进行素因子分解,如果我们对1~n的每一个数都进行素因子分解然后再进行合并的话那么显然是很慢的因此我们需要重新来考虑这个问题。 我们对n!进行素因子分解: n! = 1*2*3*4*…*n,因此它一定含有小于等于n 的所有素数我们要对这些素数分别进行处理求出含有多少项。 例如我们求n!含有多少个素因子p 设f[n][p] 表示n!含有多少素因子p; 1*2*原创 2015-08-03 10:32:43 · 975 阅读 · 0 评论 -
hdu 1299
题意: 求方程1/x+1/y=1/n的解的个数 1/3+1/2 与1/2+1/3看作是一组解。 分析: x,y地位是等价的,且都大于n. 1/x+1/y = 1/n 设y = n + k; ==>1/x + 1/(n+k)=1/n; ==>x = n^2/k + n; 因为x为整数,k就是n^2的约数。然后对其素因子分解就可以了由于x,y可以相等,所以结原创 2015-08-03 10:58:22 · 286 阅读 · 0 评论 -
hdu 1452 happy 2004
设S(x)表示x的因子和。则题目求为:S(2004^X)mod 29因子和S是积性函数,即满足性质1。这题还需用到简单的快速幂不然会超时。性质1 :如果 gcd(a,b)=1 则 S(a*b)= S(a)*S(b)2004^X=4^X * 3^X *167^XS(2004^X)=S(2^(2X)) * S(3^X) * S(167^X)性质2 :如果 p 是素数 则 S(转载 2015-08-03 10:03:23 · 332 阅读 · 0 评论 -
acdream 1084
寒假又快要到了,不过对于lzx来说,头疼的事又来了,因为众多的后宫都指望着能和lzx约会呢,lzx得安排好计划才行。假设lzx的后宫团有n个人,寒假共有m天,而每天只能跟一位后宫MM约会,并且由于后宫数量太过庞大了,而寒假的天数太少,所以lzx在寒假里不会与一个MM约会一次以上。现在lzx想要知道:寒假安排的方案数如果写成k进制,末位会有多少个0。Input原创 2015-08-03 11:02:04 · 492 阅读 · 0 评论 -
poj 3907
DescriptionMr. Tenant is going to buy a new house. In fact, he is going to buy a piece of land and build his new house on it. In order to decide which piece of land to buy, Mr. Tenant needs a progra原创 2015-08-04 15:49:35 · 379 阅读 · 0 评论 -
poj 3370
思路:定理: 设a1、a2……am是正整数的序列,则至少存在整数k和l,(1 证明:x%m的余数有(m-1)中可能,即设有(m-1)个鸽巢,设sn代表(a1+a2+...+an)则m个sn产生m个余数,根据鸽巢原理,一定至少有两个s的余数相等,将这连个s想减,中间a(k+1) + a(k+2) + ... ... +al一定是m的倍数。这题需要注意数据范围,求和的数组原创 2015-08-04 08:47:48 · 614 阅读 · 0 评论 -
hdu 3501
Problem DescriptionGiven a positive integer N, your task is to calculate the sum of the positive integers less than N which are not coprime to N. A is said to be coprime to B if A, B share no common原创 2015-09-23 19:56:20 · 537 阅读 · 0 评论