解题思路: 分解质因数只用筛10^5以内的素数即可,别忘了将大于10^5的质因子另外存储。 ...
分类:
其他好文 时间:
2016-06-08 01:39:20
阅读次数:
274
【题目描述】 Rabin-Miller算法。 【输入描述】 第一行:CAS,代表数据组数(CAS <= 350),以下CAS行,每行一个数字,保证在64位长整形范围内,并且没有负数。你需要对于每个数字: 第一,检验是否是质数,是质数就输出Prime第二,如果不是质数,输出它最大的质因子是哪个数。 第 ...
分类:
编程语言 时间:
2016-05-21 17:22:33
阅读次数:
231
小Hi:我们可以知道,任意一个正整数k,若k≥2,则k可以表示成若干个质数相乘的形式。Eratosthenes筛法中,在枚举k的每一个质因子时,我们都计算了一次k,从而造成了冗余。因此在改进算法中,只利用k的最小质因子去计算一次k。 首先让我们了解一下Eular筛法,其伪代码为: isPrime[] ...
分类:
其他好文 时间:
2016-05-18 14:13:17
阅读次数:
139
题目链接:点这里!!!!
题意:
给你一个区间[A,B](1
题解:
1、我们先把x的所有质因子找出来,注意x的最多存在1个质因子大于(sqrt(x)),所以我们可以先预处理出[1,sqrt(1e9)]所有的质数。
2、然后我们把x质因子分解并往下除,最后剩下的要么是1,要么就是大于sqrt(x)的质因子。
3、我们得到的质因子最多15个左右,我们直...
分类:
其他好文 时间:
2016-05-12 21:02:30
阅读次数:
166
题意Gcd(n)=gcd(C[n][1],C[n][2],……,C[n][n-1])
f(n)= Gcd(3)+Gcd(4)+…+Gcd(i)+…+Gcd(n).
求f(n)。思路刚开始在gcd()的地方想消一下公式看看,发现Gcd(n)好像就等于n,然后python算了一下第二个样例发现不对,后来考虑可能有质因子的话会使gcd更小,就打了一个表,然后发现一共有三种情况:
1.如果n是素数,G...
分类:
其他好文 时间:
2016-05-12 17:03:39
阅读次数:
116
因为每个数只有一个大于根号n的质因子,所以我们把每个数拆成一个大于根号n的质因子乘以一个数的形式,对于大于根号n的质因子相同的数,我们放到一起处理
dp[0/1][i][x][y]表示A/B选了当前的大质数,现在枚举到具有当前大质数的第i个数,之前A选中的集合为x,B选中的集合为y的方案数
dp[0/1][0][x][y]=f[i-1][x][y]
dp[0][i][x][y]=dp[0][...
分类:
其他好文 时间:
2016-05-12 16:57:31
阅读次数:
166
看到题,就想到要利用质因子分解进行状压dp,但是质因子太多了,不能直接搞,于是考虑按最大质因子sqrt(n)分别讨论。对于最大质因子>sqrt(n)的每个数,只有一个质因子>sqrt(n),而<sqrt(n)的质因子是可以状压的。
f[s1][s2]表示a选的集合恰好为s1,b选的集合恰好为s2的方案数,然后就想不到了。
把所有数按照最大质因子分类,每一类分别转移。
令dp[0/1][s1]...
分类:
其他好文 时间:
2016-05-12 16:05:41
阅读次数:
246
Description Input 第一行:CAS,代表数据组数(不大于350),以下CAS行,每行一个数字,保证在64位长整形范围内,并且没有负数。你需要对于每个数字:第一,检验是否是质数,是质数就输出Prime 第二,如果不是质数,输出它最大的质因子是哪个。 第一行:CAS,代表数据组数(不大于 ...
分类:
编程语言 时间:
2016-05-08 23:47:18
阅读次数:
272
4524: [Cqoi2016]伪光滑数 Description 若一个大于R的整数J的质因数分解有F项,其最大的质因子为ak,并且满足ak^k≤N, ak<128,我们就称整数J为N-伪光滑数。 现在给出L,求所有整数中,第E大的N-伪光滑数。 若一个大于R的整数J的质因数分解有F项,其最大的质因 ...
分类:
其他好文 时间:
2016-05-07 12:41:39
阅读次数:
414