一、莫比乌斯(Möbius)函数 对于每个正整数n(n ≥ 2),设它的质因数分解式为: 根据这个式子定义n的莫比乌斯函数为: 也就是如果n有平方因子,则为0. 否则是-1的质因数个数次方。 举个简单的例子:6 = 2 × 3,所以; 9 = 3×3, 所以 【命题一】 对于正...
分类:
其他好文 时间:
2014-10-31 20:34:27
阅读次数:
316
第一题:题目大意:数列a[0]=a[1]=1, a[n]=a[n-2]*a[n-1]*n,求a[n]的因子个数 mod 1000000007. n<=1000000解题过程:1.递推式还真没想出来,就记录每个a[i]的分解质因数的结果,然后转移质因子的个数。可以拿到30分。2.思路:计算a[i]的时...
分类:
其他好文 时间:
2014-10-31 15:17:33
阅读次数:
209
题目大意:给定一棵树中所有点的度数,求有多少种可能的树
Prufer序列,具体参考[HNOI2008]明明的烦恼
直接乘会爆long long,所以先把每个数分解质因数,把质因数的次数相加相减,然后再乘起来
注意此题无解需要输出0
当n!=1&&d[i]==0时 输出0
当Σ(d[i]-1)!=n-2时输出0
写代码各种脑残……居然直接算了n-2没用阶乘……
#include
#in...
分类:
其他好文 时间:
2014-10-30 19:13:02
阅读次数:
344
题目大意:给出mn,让你求C(m,n)。
思路:公式都给你了,就100,暴力就可以关键还是高精度。如果按照算法“它让你怎么做你就怎么做”,那么很显然你需要写一个高精度除法。然而可以证明,这个除法是不会产生余数的。所以我们可以数论分析,然后避免高精度除法。
方法就是暴力求每个数的质因数,然后把被除数和除数相同的质因数消去,最后除数肯定会被消没。这样只要做高精度乘法就可以了。
C...
分类:
其他好文 时间:
2014-10-28 21:52:16
阅读次数:
227
题目大意:给定n,定义一个置换的排数为1~n的循环经过这个置换最少T次(T>0)可以回到原来的序列 求所有可能的排数的数量
将一个置换分解为一些循环,那么这个置换的排数就是这些循环的长度的最小公倍数
于是对于一个数,我们验证这个数是否是排数的方式就是将这个数分解质因数,令x=p1^a1*p2^a2*...*pk^ak,若p1^a1+p2^a2+...+pk^ak
分组背包即可 令f[i][j...
分类:
其他好文 时间:
2014-10-28 12:18:49
阅读次数:
236
一、前言质因数分解,是一个在算法竞赛里老生常谈的经典问题。我们在解决许多问题的时候需要用到质因数分解来辅助运算,而且质因数分解牵扯到许许多多经典高效的算法,例如miller-rabin判断素数算法,rho启发式搜索质因数分解算法等。在此文里,我要介绍的就是miller-rabin算法以及rho启发式...
分类:
其他好文 时间:
2014-10-27 17:04:58
阅读次数:
348
题目大意:
给出N个数ai,求出另一个序列bi,要求sum |ai-bi|,最短,且所有的bi都互质。
解法:
这里题目给了几个很显眼的条件,ai限制在了1~30之间,由于可以bi无限选1这个数,那么|ai-bi| 最大就是29了,意味着bi < 59的。
要求所有的bi互质,可以化为所有的bi分解出来的质因数均不相同,bi < 59,有16个质数。这里我们很容易联想到状态压缩DP了。
用s表示当前阶段用了哪些质因数的状态,例如 s = 3 = 11 代表目前状态下使用了第一个和第二个质因数。
很快我们...
分类:
其他好文 时间:
2014-10-24 20:49:23
阅读次数:
305
将一个正整数分解质因数 #include int main(){ int n,i; printf("请输入一个数:\n"); scanf("%d",&n); printf("%d=",n); for(i=2;i<=n;i++) while(n!=i) { if(n%i=...
分类:
其他好文 时间:
2014-10-23 08:08:01
阅读次数:
123
Perfect Pth Powers
Time Limit: 1000MS
Memory Limit: 10000K
Total Submissions: 16746
Accepted: 3799
Description
We say that x is a perfect square if, for some inte...
分类:
其他好文 时间:
2014-10-18 12:37:41
阅读次数:
211
题意:给定一个数n,若n的各位数之和与n的所有质因数各位之和相等,则n为simth数。现在对于输入的一个数n,找出一个大于n的最小的一个simth数,并输出。譬如:4937775=3*5*5*65837,而3+5+5+6+5+8+3+7=42,4+9+3+7+7+7+5=42首先有如下性质:1任意合...
分类:
其他好文 时间:
2014-10-09 21:13:57
阅读次数:
218