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,有需要的同学可以拿去看一下. 本人没怎么写个播客,如果有啥说的不对的地方,你来打我啊 不说废话了直接贴代码: 实现代码 ...
随机推荐
- 解决v-for产生的警告的办法
当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用 “就地复用” 策略.如果数据项的顺序被改变,Vue将不是移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且 ...
- 【CF500D】New Year Santa Network(树上统计)
..]of longint; z:..]of extended; n,i,m,tot,x1:longint; ans,fenmu,y1:extended; procedure add(a,b:long ...
- 学习在requirejs下如何使用underscore.js模板
近期在学习underscore.js 这个小而美的js库,是前端 MVC 框架backbone依赖库,他的模板方法主要应用场景是ajax交互过程到页面需要大量的字符串拼接,这部分如果一旦不够仔细就很容 ...
- 一款基于bootstrap的文件上传插件,现在很多手机webapp都在用
官网:http://plugins.krajee.com/file-input
- 充電到 100 %時,為什麼 Vbat 只有 4.2V?
Original. 今天有同事問說, 充電電壓不是 4.35V 嗎? 充電到 100 %時,為什麼 Vbat 只有 4.2V? 可能有三種原因. 溫度. safety 會在某個溫度區間,使用較低的電壓 ...
- sql server 2008导入和导出sql文件
导出表数据和表结构sql文件 在日常的开发过程中,经常需要导出某个数据库中,某些表数据:或者,需要对某个表的结构,数据进行修改的时候,就需要在数据库中导出表的sql结构,包括该表的建表语句和数据存储语 ...
- mysql into outfile 导出
<sql> into outfile 'xxx.txt' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; <sql> 表示 ...
- cookies-判断用户是否是第一次进入页面
在郑州美莱的活动项目中客户当时有提到该需求.尽管最后去掉了该需求,但是还是花了我不少时间研究,因为之前的项目我前端没有用到过cookies,吓死宝宝了 $(document).ready(functi ...
- Java1.8新特性——接口改动和Lambda表达式
Java1.8新特性——接口改动和Lambda表达式 摘要:本文主要学习了Java1.8的新特性中有关接口和Lambda表达式的部分. 部分内容来自以下博客: https://www.cnblogs. ...
- Maven的POM简单理解
以下引用自官方的POM介绍https://maven.apache.org/guides/introduction/introduction-to-the-pom.html: 一.什么是POM? 项目 ...