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,有需要的同学可以拿去看一下. 本人没怎么写个播客,如果有啥说的不对的地方,你来打我啊 不说废话了直接贴代码: 实现代码 ...
随机推荐
- 在SpringBoot中对SpringSecurity的基本使用
参考文献: Spring Security Architecture What is authentication in Spring Security? Spring Security是一个能够为基 ...
- 【HDOJ6218】Bridge(线段树,set,网格图,连通性)
题意:给定一张2×n的网格图,一开始矩阵所有相邻点之间有一条边 有q个询问,每次给出两个相邻的点的坐标,将其中的边删除或者添加,问如此操作之后整张图的割边数量 n,q<=2*10^5, ...
- linux下 open fopen区别
open是linux下的底层系统调用函数,fopen与freopen c/c++下的标准I/O库函数,带输入/输出缓冲.linxu下的fopen是open的封装函数,fopen最终还是要调用底层的系统 ...
- 安装phpssdb扩展:
安装 igbinary 扩展(安装phpssdb扩展时候要用到--enable-ssdb-igbinary): clone https://github.com/igbinary/igbinar ...
- 从 React Router 谈谈路由的那些事
React Router 是专为 React 设计的路由解决方案,在使用 React 来开发 SPA (单页应用)项目时,都会需要路由功能,而 React Router 应该是目前使用率最高的. Re ...
- jenkins发布普通项目、配置自动上线自动部署
1.以root用户运行jenkins是不专业的 刚开始用jenkins时用jenkins这个普通用户运行程序,始终无法连接到gitlab,报错如下: 先是把修改jenkins上的git路径,将git修 ...
- GCD CoreData 简化CoreData操作(转)
来自会员带睡帽的青蛙的分享: 短话长说,开始写这个小工具到现在有两个月了,虽然东西少,但是很精练,改了又改,期间有不少问题 在坛子里获得了不少帮助 谢谢各位大大. 就是两个文件一个类 CoreData ...
- Linux有问必答:如何检查Linux的内存使用状况
-1. /proc/meminfo11% -2. atop20% -3. free29% -4. GNOME System Monitor35% -5. htop41% -6. KDE System ...
- DICOM:DICOM万能编辑工具之Sante DICOM Editor
版权声明:本文为zssure原创文章,转载请注明出处,未经允许不得转载. 目录(?)[-] 背景 DICOM Service的配置 Sante DICOM Editor自启动的服务 PACS查询下 ...
- 自己封装的CMusic类 【转】
http://www.cnblogs.com/zhangminaxiang/archive/2013/02/27/2936011.html 缘由: 在改正俄罗斯方块程序的功能的时候,想给这个程序增加一 ...