HDU5317:RGCDQ (数学 & 二分)
来源:互联网 发布:中交二公院 知乎 编辑:程序博客网 时间:2024/06/05 18:26
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 gradually. For a positive integer x, F(x) indicates the number of kind of prime factor of x. For example F(2)=1. F(10)=2, because 10=2*5. F(12)=2, because 12=2*2*3, there are two kinds of prime factor. For each query, we will get an interval [L, R], Hdu wants to know maxGCD(F(i),F(j)) (L≤i<j≤R)
In the next T lines, each line contains L, R which is mentioned above.
All input items are integers.
1<= T <= 1000000
2<=L < R<=1000000
See the sample for more details.
22 33 5
11
题意:f[i]表示i的不同质因子数。T个询问,输出区间内gcd(f[i],f[j])最大的值。
思路:1e6范围内质因子至多7个不同,打个表对每个数的质因子数存下,二分查找即可。或者用前缀和也可以。
# include <iostream># include <cstdio># include <set># include <algorithm>using namespace std;const int N = 1e6+30;int isprime[N+3], pcnt, cnt[N+3];vector<int>v[10];int main(){ int t, l, r; for(int i=2; i<N; ++i) { if(!isprime[i]) { for(int j=i; j<N; j+=i) { isprime[j] = 1; ++cnt[j]; } } } for(int i=2; i<=N-30; ++i) v[cnt[i]].push_back(i); while(~scanf("%d",&t)) { while(t--) { scanf("%d%d",&l,&r); int i; for(i=8; i>=1; --i) { int p1 = upper_bound(v[i].begin(), v[i].end(), r)-v[i].begin()-1; int p2 = lower_bound(v[i].begin(), v[i].end(), l)-v[i].begin(); if(p1-p2+1 >= 2) { printf("%d\n",i); break; } } if(i==0) puts("1"); } } return 0;}
阅读全文
0 0
- HDU5317:RGCDQ (数学 & 二分)
- hdu5317 RGCDQ
- HDU5317.RGCDQ
- hdu5317 RGCDQ
- RGCDQ (HDU5317)
- hdu5317 RGCDQ
- Hdu5317 RGCDQ
- hdu5317 RGCDQ (质因子种数+预处理)
- [数学]多校联合第三场 hdu5317 RGCDQ
- hdu5317 RGCDQ 统计
- hdu5317 RGCDQ(dp)
- hdu5317(2015多校3)--RGCDQ(素数筛+枚举)
- 2015 Multi-University Training Contest 3 1002RGCDQ(hdu5317)
- 2015年多校联合训练第三场RGCDQ(hdu5317)
- 20160322 HDU5317 RGCDQ(筛数+树状数组)
- hdu5317 RGCDQ (素数筛+递推方程)
- HDU5317 RGCDQ 质因子分解
- 解题报告 之 HDU5317 RGCDQ
- 使用 ExceptionDispatchInfo 捕捉并重新抛出异常
- 桥接模式概念和理解
- springboot生成自定义banner
- zabbix自动发现端口
- c语言常见练习题
- HDU5317:RGCDQ (数学 & 二分)
- 手写一个bind
- js对象基础知识和程序设计
- jFinal项目不能实例化JFinalConfig的子类
- struts2文件上传和下载
- Android中一些小的知识点
- JZOJ 5409【NOIP2017提高A组集训10.21】Fantasy(主席树版)
- c语言学习心得
- setTimeout的this指向:学习apply、call、bind