hdu5317 RGCDQ】的更多相关文章

// 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…
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…
RGCDQ Time Limit: 3000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Submit Status 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 Ra…
题目传送门 /* 题意:给一个区间,问任意两个数的素数因子的GCD最大 数学+dp:预处理出f[i],发现f[i] <= 7,那么用dp[i][j] 记录前i个f[]个数为j的数有几个, dp[r][j] - dp[l-1][j]表示区间内j的个数,情况不多,分类讨论一下 */ #include <cstdio> #include <algorithm> #include <cstring> #include <vector> #include <…
2015 HDU 多校联赛 5317 RGCDQ 筛法求解 题目  http://acm.hdu.edu.cn/showproblem.php? pid=5317 本题的数据量非常大,測试样例多.数据量大, 所以必须做预处理.也就是用筛法求出全部的F[x],将全部F[x] 打印出来发现.事实上结果不大,最大的数值是7.所以对于每一个区间询问, 直接暴力求取有多少个 1 2 3 4 5 6 7 就可以,从大到小查找.假设出现2个以上 3-7 的数值,那么最大公约数就是该数字. 假设没有出现两个反复…
RGCDQ Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5317 Mean: 定义函数f(x)表示:x的不同素因子个数. 如:f(2) = 1, f(6) = 2: 给定L和R(L<=i<j<=R),求区间内任意不相等的两个数f(x)的最大公约数的最大值. analyse: 因为2*3*5*7*11*13*17 >1e6,所以f(x)的值最大为7; 我们先打表求出每个数的f(x)值: f[i][j]表示2~i中…
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…