题目链接:uva 10951 - Polynomial GCD题目大意:给出n和两个多项式,求两个多项式在全部操作均模n的情况下最大公约数是多少。解题思路:欧几里得算法,就是为多项式这个数据类型重载取模运算符,须要注意的是在多项式除多项的过程中,为了保证各项系数为整数,须要将整个多项式的系数总体扩大...
分类:
其他好文 时间:
2014-08-29 12:41:38
阅读次数:
252
题意:
求A^B的所有约数之和。
题解:
A = P1^a1 * P2^a2 * ... * Pn^an.
A^B的所有约数之和为:
sum = [1+p1+p1^2+...+p1^(a1*B)] * [1+p2+p2^2+...+p2^(a2*B)] *...* [1+pn+pn^2+...+pn^(an*B)].
用递归二分求等比数列1+pi+pi^2+pi^...
分类:
其他好文 时间:
2014-08-28 21:16:56
阅读次数:
406
欧几里得
时间限制:1000 ms | 内存限制:65535 KB
难度:0
描述
已知gcd(a,b)表示a,b的最大公约数。
现在给你一个整数n,你的任务是在区间[1,n)里面找到一个最大的x,使得gcd(x,n)等于1。
输入输入文件的第一行是一个正整数T,表示有T组测试数据
接下来有T行,每行有一个正整数n (1
输出每组测试输出要求...
分类:
其他好文 时间:
2014-08-27 23:31:28
阅读次数:
306
题目大意:给定N,M, 求1=M的个数。题解:首先,我们求出数字N的约数,保存在约数表中,然后,对于大于等于M的约数p[i],求出Euler(n/p[i]),累计就是答案。因为对于每一个大于等于m的约数,GCD(N,t*p[i])=p[i]>=m(t与p[i]互质),所以n除以p[i]的欧拉函数的和...
分类:
其他好文 时间:
2014-08-27 21:52:28
阅读次数:
229
求约数的个数方法有很多,你可以使用O(n)的方法来遍历看是否为约数,更可以使用O(sqrt(n))复杂度的算法从1~sqrt(n)来判断个数,但是在这里我们给出的是一种稍快于O(sqrt(n))的方法,大概节省2/3左右的时间....
分类:
其他好文 时间:
2014-08-27 16:43:18
阅读次数:
370
http://acm.hdu.edu.cn/showproblem.php?pid=2588
题意:输入 N 和 M (2
找出所有的X满足1=M.
此题数据量很大,用常规方法肯定超时
思路:首先,求出N的所有约数g[],然后枚举那些 >=M 的公约数g[i],
结果为 所有 n/g[i] 的欧拉函数的值的和
解释:若x>=M,且x是N的约数...
分类:
其他好文 时间:
2014-08-27 16:42:28
阅读次数:
174
求满足 gcd(a,n)*acd(b,n)=n^k的整数对(a,b)。n
特殊情况考虑一下(n=1,k>=2),问题很容易转化为求euter(n/g)*euter(g),g是约数。这题比赛时候竟然应该不会求n的约数二不会做!
求约数时候,枚举(1,根号n),另一半对应啊!欧拉函数,这次有改进。
#include
#include
#include
using namespace std;
l...
分类:
其他好文 时间:
2014-08-27 12:58:47
阅读次数:
231
这个函数是我无意中看到的很不错,很给力,我喜欢是用于求最小公约数的简单的描述就是,记gcd(a,b)表示非负整数a,b的最大公因数,那么:gcd(a,b)=gcd(b,a%b)或者gcd(a,0)=gcd(0,a)=a请看代码int gcd(int a,int b){ if(a==0) ...
分类:
其他好文 时间:
2014-08-25 18:44:54
阅读次数:
160
知识点:辗转相除法求最大公约数内容: 求两个自然数的最大公约数输入说明:一行两个整数输出说明:一行最大公约数输入样例:2 4输出样例 :2#include int main(){ int a,b,t; scanf("%d %d",&a,&b); do { t=a%b; a=b; b=t; } ...
分类:
其他好文 时间:
2014-08-25 07:37:13
阅读次数:
189
这个算法是用来求满足下列条件的整数x和y: d = gcd(a,b) = ax+by (d为a,b的最大公约数)算法导论上给出的伪代码: EXTENDED_EUCLID(a,b) 1 if b==0 2 return (a,1,...
分类:
其他好文 时间:
2014-08-24 23:40:53
阅读次数:
339