上一页 1 ··· 27 28 29 30 31
摘要: 由题知:g(n)=sigma{phi(n/d)*n/d},d|nf(n)=(g(n)+1)/2由于欧拉函数的积性,phi(n*m)=phi(n)*phi(m),gcd(n,m)=1所以,n=pi(pi^ci)故g(n)=g(pi(pi^ci))。g(n)=pi(g(pi^ci)g(pi^ci)=sigma(phi(pi^ci)pi^ci)而对于phi(pi^ci)(pi-1)*(pi^(ci-1)至此就这题就解决了!我的代码:超时的代码:LL sumlcm(int n) { int te = 0, temp = n; LL sum = 0; if (n == 1) ... 阅读全文
posted @ 2011-07-29 17:16 qingyezhu 阅读(174) 评论(0) 推荐(0)
摘要: 做法:直接求过不了只能考虑 对于gcd(M,N)=i 有Ci个M满足此式 答案便是∑(Ci*i)gcd(M,N)=i <=> gcd(M/i,N/i)=1 而求gcd(M/i,N/i)=1 有多少个M/i满足 这便是欧拉函数Phi()的定义所以就转化为了求Phi(N/i)枚举每个 M|N 求出Phi(N/i) 答案便是 ∑(Phi(N/i)*i)那么如何枚举每个 M|N 呢?很简单 枚举1到sqrt(N)的所有整数,所有的约数便是 j|N (N/j)|N这样就搞定了#include<stdio.h>#include<math.h>#include<st 阅读全文
posted @ 2011-07-28 14:15 qingyezhu 阅读(254) 评论(0) 推荐(0)
摘要: #include<stdio.h>#include<string.h>#include<math.h>#define nmax 1000001int prime[nmax], plen;void init() { memset(prime, -1, sizeof(prime)); int i, j; for (i = 2; i < nmax; i++) { if (prime[i]) { for (j = i + i; j < nmax; j += i) { prime[j] = 0; } } } for (i = 2, plen = 0; i 阅读全文
posted @ 2011-07-28 11:08 qingyezhu 阅读(308) 评论(0) 推荐(0)
摘要: 一下来源于:兔子算法集中营http://www.cppblog.com/superKiki/archive/2010/10/31/131928.html在数学中,某个序列的母函数是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。使用母函数解决问题的方法称为母函数方法。 母函数可分为很多种,包括普通母函数、指数母函数、L级数、贝尔级数和狄利克雷级数。对每个序列都可以写出以上每个类型的一个母函数。构造母函数的目的一般是为了解决某个特定的问题,因此选用何种母函数视乎序列本身的特性和问题的类型。这里先给出两句话,不懂的可以等看完这篇文章再回过头来看:“把组合问题的加法法则和幂级数的t的乘幂的 阅读全文
posted @ 2011-07-18 16:57 qingyezhu 阅读(185) 评论(0) 推荐(0)
上一页 1 ··· 27 28 29 30 31