摘要:
题意:求组合数C[n][k]的约数个数。(0<= k <= n <= 431)思路:一个数num的约数个数为cnt,将num质因数分解,得num = p1^a1 * p2^a2 * p3^a3 * ……*pn^an.则约数个数cnt = (a1 + 1) * (a2 + 1) * (a3 + 1) * …… *(an + 1).C[n][k] = n ! / ((n - k) ! * k !).cal(n, k) 函数求出 n! 时能分解出几个 k。(1) 先预求 1 到 431 的素数表。(2) 则C[n][k]中包含素数prime[i]的个数为ai = cal(n!, p 阅读全文
posted @ 2011-09-06 20:32
ω 提拉米兔 ℃
阅读(495)
评论(0)
推荐(0)
摘要:
题目意思是给定m,n问你 m/n的二进制表示的最大循环节开始位置和长度。找了一些题解,发现没有满意的,discuss里面的分析已经很好了。。我们可以观察一下1/10这组数据,按照二进制转换法(乘二法),我们可以得到:1/10 2/10 4/10 8/10 16/10 32/10 ...然后都分子都尽可能减去10,得到:1/10 2/10 4/10 8/10 6/10 2/10 ...这时候,发现出现了重复,那么这个重复就是我们要求的最小循环。抽象出模型如下:对p/q首先p'=p/gcd(p,q)q'=q/gcd(p,q);然后我们就是求p'*2^i == p'* 阅读全文
posted @ 2011-09-06 19:12
ω 提拉米兔 ℃
阅读(456)
评论(0)
推荐(0)
摘要:
先开始暴搞,然后悲剧地超时了……题目的大意是:求出正整数1~n内两两互质的数的对数。其中n <= 1,000,000欧拉函数还有这样的性质: 设a为N的质因数,若(N % a == 0 && (N / a) % a == 0) 则有E(N)=E(N / a) * a;若(N % a == 0 && (N / a) % a != 0) 则有:E(N) = E(N / a) * (a - 1)。 预处理用筛选法求得1~n内的所有质数,就可以在比较快的时间内求得1~n内所有数字的欧拉函数。 在筛选法求质数的过程中,记录合数的最小质因数,这样在求欧拉函数的过程中之 阅读全文
posted @ 2011-09-06 09:48
ω 提拉米兔 ℃
阅读(356)
评论(0)
推荐(0)
摘要:
又去抄依然大神的题解了……a274001001Accepted3400K110MSJava687B2011-09-05 20:58:10import java.io.*;import java.math.*;import java.util.*;import java.text.*; public class Main { public static void main(String[] args) { Scanner cin=new Scanner (new BufferedInputStream(System.in)); BigDecimal num; ... 阅读全文
posted @ 2011-09-05 21:03
ω 提拉米兔 ℃
阅读(442)
评论(0)
推荐(0)
摘要:
给定m, k(1 <= m <= 1000000), K(1 <= K <= 100000000), 询问第k个与m互质的数。欧拉函数的应用。首先是求出m的欧拉函数值phi[m],可知区间[1, m - 1]中有phi[m]个数与m互质。同样,在区间[n*m + 1, (n + 1) * m]中必然也有phi[m]个数与m互质,并且这phi[m]个数与[1 - m - 1]的phi[m]个数是"一一对应"的。所以只要通过k / phi[m]找到第n个区间,然后再枚举区间中的数就可以找到第k个与m互质的数。先开始当m=1时,我输出的是k+1,wa了几次 阅读全文
posted @ 2011-09-05 20:24
ω 提拉米兔 ℃
阅读(337)
评论(0)
推荐(0)
摘要:
题目太水,就不说了。。主要是想把代码贴出来以后还有用。。import java.io.*;import java.math.*;import java.util.*;import java.text.*;public class Main{ public static void main (String[] args) { Scanner cin=new Scanner (new BufferedInputStream(System.in)); BigInteger prime[]=new BigInteger[110]; Big... 阅读全文
posted @ 2011-09-05 19:18
ω 提拉米兔 ℃
阅读(203)
评论(0)
推荐(0)
摘要:
被这道题虐了两天了……自己也试着敲了一下。。事实证明手上的模版不给力啊。。。先用手上的模版敲了一个miller rabin,结果9都给我判成素数,真是无言了,然后又用算导上面讲得方法自己敲了一个pollard rho,结果卡死了……只有少数几种情况会出答案,大部分情况都是卡死了。。悲剧一个。。后来去找解体报告,因为这个题本来就是模版题嘛。。大多数写的都不是很符合我的习惯,看不进去,好不容易找到两个我看得进去的吧,自己在hust上交了一下,居然RE了。。话说这种解题报告还交上来嘛。。。好不容易在百度知道上面找到了一份代码,我觉得写得挺不错的,也解决了一些我遇到的困惑。素数判断用miller法 分 阅读全文
posted @ 2011-09-02 17:39
ω 提拉米兔 ℃
阅读(557)
评论(0)
推荐(0)