hdoj5317【素数预处理】
//这个很好了。。。虽然是一般。。
int isp[1000100];
int p[1000100];
void init()
{
int sum=0;
int i,j;
fill(isp,isp+1000007,true);
for(i=2;i<=1000000;i++)
{
sum++;
if(!isp[i]) continue;
for(j=i+i;j<=1000000;j+=i)
{
sum++;
isp[j]=false;
}
}
int num=0;
for(i=2;i<=1000000;i++)
if(isp[i])
p[++num]=i;
}
题意:
F(x):对于x的素数因子的种类个数。
给t(<=1e6)个查询,每个查询给出L,R(<=1e6),求在区间[L,R]内求一个maxGCD(F(i),F(j))
F(i)肯定<7;
思路:
计数一下,然后后面直接搞;
用sum数组表示从1->i有数量j的个数。
最终他的个数有>=2的话可以,或者还有一种情况就是6/2或者6/3的最大公约数是2/3.后面就是手动枚举了一下。
其实弱学到的最好的就是这个线性搞出一个素数因子表。
#include <iostream>
#include <algorithm>
#include <stdio.h>
using namespace std;
bool isPrime[1000001];
int cnt[1000001];
int sum[1000001][8];
void Init()
{
fill(isPrime, isPrime + 1000001, true);
for(int i = 2; i <= 1000000; ++i)
{
if(!isPrime[i])
continue;
++cnt[i];
for(int j = i + i; j <= 1000000; j += i)
{
isPrime[j] = false;
++cnt[j];
}
}
for(int i = 2; i <= 1000000; ++i)
for(int j = 1; j <= 7; ++j)
sum[i][j] = sum[i - 1][j] + (cnt[i] == j ? 1 : 0);
}
int main()
{
Init();
int T;
scanf("%d", &T);
while(T--)
{
int l, r;
scanf("%d%d", &l, &r);
int cnt[8] = {0};
for(int i = 1; i <= 7; ++i)
cnt[i] = sum[r][i] - sum[l - 1][i];
if(cnt[7] >= 2)
printf("7\n");
else if(cnt[6] >= 2)
printf("6\n");
else if(cnt[5] >= 2)
printf("5\n");
else if(cnt[4] >= 2)
printf("4\n");
else if(cnt[3] >= 2 || (cnt[3] && cnt[6]))
printf("3\n");
else if(cnt[2] >= 2 ||
(cnt[2] && cnt[4]) ||
(cnt[2] && cnt[6]) ||
(cnt[4] && cnt[6]))
printf("2\n");
else
printf("1\n");
}
return 0;
}
/*1 2 3 4 5 6 7*/
/*
7 7 7
6 6 6
5 5 5
4 4 4
3 3 3 3 6
2 2 2 2 4 2 6 4 6
*/
hdoj5317【素数预处理】的更多相关文章
- lightoj1259 【素数预处理】
题意: 输出有多少对满足条件的(a,b) both a and b are prime; a+b=n a<=b; 思路: 一开始想的就是打表一个素数数组,然后还去二分..mdzz..直接判断一下 ...
- Codeforces 385C Bear and Prime Numbers(素数预处理)
Codeforces 385C Bear and Prime Numbers 其实不是多值得记录的一道题,通过快速打素数表,再做前缀和的预处理,使查询的复杂度变为O(1). 但是,我在统计数组中元素出 ...
- Miller-Rabin素数检测算法
遇到了一个题: Description: Goldbach's conjecture is one of the oldest and best-known unsolved problems in ...
- 【题解】CF264B Good Sequences
[题解]CF264B Good Sequences 具有很明显的无后效性. 考虑\(dp\). 考虑初始条件,显然是\(dp(0)=0\) 考虑转移,显然是\(dp(t)=max(dp[k])+1\) ...
- 《TC训练赛一》题解!
以下题目标题就是此题题目链接,题目内容为了节省篇幅就不粘上去了.整套题的链接:https://acm.bnu.edu.cn/v3/contest_show.php?cid=8679#info 密码:7 ...
- ECUST_Algorithm_2019_1
简要题意及解析 1001 求\(a+b\). 数据范围很大,用int或者long long不行.Java和python可以使用大数直接写. 高精度加法:做法就是将数据读入字符串中,数组的每一个单元存一 ...
- qbxt五一数学Day3
目录 1. 组合数取模 1. \(n,m\le 200\),\(p\) 任意 2. \(n,m\le 10^6\),\(p\ge 10^9\) 素数 3. \(n,m\le 10^6\),\(p\le ...
- UVA-10200-Prime Time-判断素数个数(打表预处理)+精度控制
题意: 给出a.b区间,判断区间内素数所占百分比 思路: 注意提前打表和控制精度1e-8的范围足够用了 细节: 精度的处理 判断素数的方法(且返回值为bool) 数据类型的强制转换 保存素数个数 提前 ...
- hdu5317 RGCDQ (质因子种数+预处理)
RGCDQ 题意:F(x)表示x的质因子的种数.给区间[L,R],求max(GCD(F(i),F(j)) (L≤i<j≤R).(2<=L < R<=1000000) 题解:可以 ...
随机推荐
- ShopMall
https://github.com/KingsleyYau/ShopMall-Android https://github.com/KingsleyYau/ShopMall-iOS https:// ...
- iOS之UI--使用SWRevealViewController 实现侧边菜单功能详解实例
iOS之UI--使用SWRevealViewController 实现侧边菜单功能详解实例 使用SWRevealViewController实现侧边菜单功能详解 下面通过两种方法详解SWReveal ...
- C++类中static修饰的函数的使用
//在C++中应该养成习惯:只用静态成员函数引用静态成员数据,而不引用非静态成员数据 #include <iostream>using namespace std;class st_inf ...
- mysql insert操作
insert的语法 INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] ...
- 细谈SetButtonInfo函数及其用途
SetButtonInfo用于设置某个按钮,它的接口定义如下: 下面是它的几个接口函数说明: void CToolBar::SetButtonInfo(int nIndex, UINT nID, UI ...
- [转]XCode中修改缺省公司名称/开发人员名称
本文转载至 http://www.cnblogs.com/zhulin/archive/2011/11/24/2261537.html XCode新建文件后,头部会有开发人员名称,公司名称等信息 ...
- 1507: [NOI2003]Editor
1507: [NOI2003]Editor Time Limit: 5 Sec Memory Limit: 162 MB Submit: 3535 Solved: 1435 [Submit][St ...
- scrollView 代理方法的实现顺序的些许区别
- (linux)SD卡初始化-mmc_sd_init_card函数(续)
转自:http://www.cnblogs.com/fengeryi/p/3472728.html mmc_sd_init_card剩下的关于UHS-I的分支结构. uhs-I的初始化流程图如 ...
- oracle:对Index重建、分析
对index进行分析,index_stats 表很有用.下面例子就结合index相关操作及 index_stats 的使用,对index进行分析. SQL> select count(*) fr ...