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)>=2
// 说明出现了两次以上,那么最大公约数就是此时的i啦。统计一下,然后O(1)求值。
//
// 感悟:
//
// 这道题,開始想复杂了,还和大神们一起讨论线段树怎么做。然后发现当时过的队伍好多,
// 就再没往这方面想,还是J大神最后秒了这题。确实挺巧妙的。当时的我就在卖萌。哎,
// 自己不会的千千万。不,应该说我就不会什么。继续加油吧!fighting!
//
// 非常奇怪的一点是在进行埃式筛法的时候開始将isp置为0或者置为1,所花费的时间天差地别,
// 后者TLE了n发。改过来之后1100多ms过了,这里实在想不通,假设有大神可以解答我的疑惑
// 小子定当不胜感激 #include <stdio.h>
#include <string.h>
#include <algorithm>
#include <iostream>
#include <vector>
#define For(i,x,y) for (int i = (x) ;i < (y) ;i ++)
using namespace std; const int MAX_N = 1000006;
int f[MAX_N];
bool isp[MAX_N];
int p[MAX_N];
int sum[MAX_N][10];
int l,r;
int cnt;
inline void init(){
cnt = 0;
memset(isp,0,sizeof(isp));
isp[0] = isp[1] = 0; for (int i=2;i<=MAX_N;i++){
if (!isp[i]){
p[cnt++] = i;
for (long long j = (long long) i * i;j < MAX_N;j+=i){
isp[j] = 1;
}
}
}
f[1] = 0;
for (int i=2;i< MAX_N;i++){
int x = i;
f[i] = 0;
for (int j=0;j<cnt && isp[x]==1;j++){
if (x%p[j]==0){
f[i]++;
while(x%p[j]==0){
x/=p[j];
}
}
}
if (x>1)
f[i]++;
} for (int i=1;i<8;i++)
sum[1][i] = 0; for (int i=2;i<=MAX_N;i++){
for (int j=1;j<8;j++)
sum[i][j] = sum[i-1][j];
for (int j=1;j<8;j++){
if (f[i]%j==0){
sum[i][j]++;
}
}
}
} inline void solve(){
scanf("%d%d",&l,&r);
int mx = 0;
for (int i=8;i>=1;i--){
if (sum[r][i] - sum[l-1][i] >= 2){
mx = i;
break;
}
}
printf("%d\n",mx); } int main(){
int t;
init();
//freopen("1.txt","r",stdin);
scanf("%d",&t);
while(t--){ solve();
}
}
hdu5317 RGCDQ 统计的更多相关文章
- 解题报告 之 HDU5317 RGCDQ
解题报告 之 HDU5317 RGCDQ Description Mr. Hdu is interested in Greatest Common Divisor (GCD). He wants to ...
- hdu5317 RGCDQ (质因子种数+预处理)
RGCDQ 题意:F(x)表示x的质因子的种数.给区间[L,R],求max(GCD(F(i),F(j)) (L≤i<j≤R).(2<=L < R<=1000000) 题解:可以 ...
- HDU-5317 RGCDQ ,暴力打表!
RGCDQ 暴力水题,很可惜比赛时没有做出来,理清思路是很简单的. 题意:定义f(i)表示i的素因子个数,给你一段区间[l,r],求max_gcd(f(i),f(j)).具体细节参考题目. 思路:数据 ...
- hdu5317 RGCDQ
Problem Description Mr. Hdu is interested in Greatest Common Divisor (GCD). He wants to find more an ...
- 2015 HDU 多校联赛 5317 RGCDQ 筛法求解
2015 HDU 多校联赛 5317 RGCDQ 筛法求解 题目 http://acm.hdu.edu.cn/showproblem.php? pid=5317 本题的数据量非常大,測试样例多.数据 ...
- HDU-5317
RGCDQ Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- spark处理大规模语料库统计词汇
最近迷上了spark,写一个专门处理语料库生成词库的项目拿来练练手, github地址:https://github.com/LiuRoy/spark_splitter.代码实现参考wordmaker ...
- TFS 测试用例步骤数据统计
TFS系统集成了一套BI系统,基于SQL Server的Analysis Service进行实现的.通过这几年的深入使用,能够感触到这个数据数据仓库模型是多么的优秀,和微软官方提供的数据仓库示例Adv ...
- java统计字符串单词的个数
在一些项目中可能需要对一段字符串中的单词进行统计,我在这里写了一个简单的demo,有需要的同学可以拿去看一下. 本人没怎么写个播客,如果有啥说的不对的地方,你来打我啊 不说废话了直接贴代码: 实现代码 ...
随机推荐
- java8 函数式接口——Function/Predict/Supplier/Consumer
Function 我们知道Java8的最大特性就是函数式接口.所有标注了@FunctionalInterface注解的接口都是函数式接口,具体来说,所有标注了该注解的接口都将能用在lambda表达式上 ...
- 【Hihocoder1636】Pangu and Stones(区间DP)
题意:N堆石子,每次可以合并连续的长度从L到R的若干堆石子为1堆,费用为选择的石子总个数,求将N堆合并成1堆的最小总花费,无解输出0 思路:dp[i][j][k]表示将i到j这段区间合并为k堆的最小代 ...
- es6总结 (五)--函数扩展
- Word Ladder系列
1.Word Ladder 问题描述: 给两个word(beginWord和endWord)和一个字典word list,找出从beginWord到endWord之间的长度最长的一个序列,条件: 1. ...
- gzip: stdin: unexpected end of file tar: 归档文件中异常的 EOF
gzip: stdin: unexpected end of file tar: 归档文件中异常的 EOF 问题描述: 使用tar命令解压文件时,报错: gzip: stdin: unexpected ...
- Linux 之 网络相关设置
网络相关设置 参考教程:[千峰教育] 命令: ping: 作用:通常用于检测网络设备的连通性. 格式:ping IP/域名 选项:-c,指定方式测试数据包的次数 实例:ping www.baidu.c ...
- CentOS找不到想要的镜像版本?
CentOS找不到想要的镜像版本? 情景: 当学习Linux时,一般教程不是最新的,教程里的CentOS版本也就不是最新的,这个时候, 在看着教程练习的时候就需要安装指定的版本,避免因为版本不同造成困 ...
- 表格 td中,取checkbox后几位值
function addToPanDianDetail() { var detail_id = ""; var detail_code = ""; $(&quo ...
- [react-router] 平时积累
path通配符: <Route path="/hello/:name"> // 匹配 /hello/michael // 匹配 /hello/ryan <Rout ...
- AC日记——花店橱窗布置 codevs 1028
题目描述 Description 假设以最美观的方式布置花店的橱窗,有F束花,V个花瓶,我们用美学值(一个整数)表示每束花放入每个花瓶所产生的美学效果.为了取得最佳的美学效果,必须使花的摆放取得最大的 ...