HDU5317】的更多相关文章

// hdu5317 RGCDQ // // 题目大意: // // 给定一个闭区间[l,r],定义f(x)是x的不同的质因子的个数 // 比方: 12 = 2 * 2 * 3,是两种.所以f(x) = 2,问max GCD(f[i],f[j]) // i,j在[l,r]范围内,而且i!=j. // // 解题思路: // // 首先伟大的W神发现了一个规律.就是小于等于1e6不同的素因子个数不会超过7个 // 这样.我们就行统计出在1到i这个区间内,1-7各出现了多少次.最后R-(L-1)>=…
解题报告 之 HDU5317 RGCDQ Description Mr. Hdu is interested in Greatest Common Divisor (GCD). He wants to find more and more interesting things about GCD. Today He comes up with Range Greatest Common Divisor Query (RGCDQ). What's RGCDQ? Please let me expl…
RGCDQ 题意:F(x)表示x的质因子的种数.给区间[L,R],求max(GCD(F(i),F(j)) (L≤i<j≤R).(2<=L < R<=1000000) 题解:可以用素数筛求质因子种数(这不用多说,看下代码init()中内容就能理解).然而R的范围太大,会TLE.因此只能用空间换时间了. 可以用一个二维数组num[i][j] 保存x<=i&&F(x)=j的x的个数.(预处理,有点dp的思想) 2*3*5*7*11*13*17 > 10 ^ 6…
题意:定义一个数K,最小质因数形式为K = a*b*c形式(如12 = 2*2*3),相同只取一个(所以12只能取2,3两个,既F[12]=2)给L,R区间,找出区间内最大的F[x](L<=x<=R). 思路:先打素数表,然后枚举1000000内全部数,因为可能值只能为2,3,5,7,11,13,17这7个数,所以arr数组存放每个数对应的值的个数,然后用dp数组来表示下标为i并且小于i的所有数为j值的个数,最后只要从给定的两个区间做一次值比较即可. #include <stdio.h&…
RGCDQ Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 698    Accepted Submission(s): 328 Problem Description Mr. Hdu is interested in Greatest Common Divisor (GCD). He wants to find more and mor…
RGCDQ 暴力水题,很可惜比赛时没有做出来,理清思路是很简单的. 题意:定义f(i)表示i的素因子个数,给你一段区间[l,r],求max_gcd(f(i),f(j)).具体细节参考题目. 思路:数据范围是1e6,而且1e6组数据,很明显只能打表O(1)查询嘛.我们可以发现1e6以内的数最多有7个素因子,这便是此题的突破口.定义一个二维数组num[i][j]表示前i个数中素因子个数j的出现次数.然后类似筛法求素数打表.注意这段区间素因子为j的次数如果大于1,那么ans=max(ans,j).否则…
Problem Description Mr. Hdu is interested in Greatest Common Divisor (GCD). He wants to find more and more interesting things about GCD. Today He comes up with Range Greatest Common Divisor Query (RGCDQ). What's RGCDQ? Please let me explain it to you…