HDU 5317(数论,素数筛法)
来源:互联网 发布:php o2o系统 编辑:程序博客网 时间:2024/05/29 15:19
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5317
题解:题目大意:自己去读读,学算法的人,总不会都英语都学不好吧。
我的思路:因为2*3*5*7*11*13*17 = 510510, 所以f只有7个值
先用筛法查出没每个数的f函数值,然后在sum[i][j]求出从1到if函数值为j的数的总个数,然后求出区间【L, R】中每个函数值的数的个数,然后再求最大gcd;
下面附上代码:
题解:题目大意:自己去读读,学算法的人,总不会都英语都学不好吧。
我的思路:因为2*3*5*7*11*13*17 = 510510, 所以f只有7个值
先用筛法查出没每个数的f函数值,然后在sum[i][j]求出从1到if函数值为j的数的总个数,然后求出区间【L, R】中每个函数值的数的个数,然后再求最大gcd;
下面附上代码:
#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;int a[1000005], sum[1000005][8]; //a用来存每个数的f函数值, sum[i][j]用来存到从1到i位f函数值位j的数的总个数int main(){ a[1] = 0; for(int i = 2; i <= 1000000; i++) { if(!a[i]) { a[i]++; for(int j = 2*i; j <= 1000000; j+=i) a[j]++; } } for(int i = 2; i <= 1000000; i++) { for(int j = 1; j <= 7; j++) { sum[i][j] = sum[i-1][j] + (a[i] == j); } } int N; scanf("%d", &N); while(N--) { int x, y; scanf("%d%d", &x, &y); int c[8]; for(int i = 1; i <= 7; i++) // 求区间内f值为i的数有多少个。 { c[i] = sum[y][i]- sum[x-1][i]; } int ans = 1; for(int i = 7; i >=1; i--)// 从高往低 { if(c[i] >= 2) // 如果有两个数的f函数都等于i,那么这两个数的gcd肯定等于i { ans = i; break; } } if(c[2]>0 && (c[4]>0 || c[6]>0)) ans = max(ans, 2); // 2和4或6的gcd为2 if(c[3]>0 && c[6]>0) ans = max(ans, 3);//3和6的gcd为3 if(c[4]>0 && c[6]>0) ans = max(ans, 2);// 4和6的gcd为2 printf("%d\n", ans); }}
0 0
- HDU 5317(数论,素数筛法)
- [数论] HDU 1431 素数回文 筛素数
- [数论]HDU 1215 七夕节 筛素数
- HDU5750(数论,素数筛法)
- hdu 2521 反素数(数论)
- HDU 1262 寻找素数对 数论-素数
- HDU 3988 Harry Potter and the Hide Story(数论)(素数筛法)
- HDU 6069 数论 区间素数筛(+赛后反思
- 数论专题小结:素数筛法
- luogu 1865 数论 线性素数筛法
- 数论——素数筛法
- 【数论】筛素数
- HDU 2136 Largest prime factor 数论-素数
- HDU 2012 素数判定(数论)
- B - RGCDQ-HDU 5317-素数筛法
- hdu 1262 寻找素数对(数论:生成素数表+水题)
- HDU 4548 美素数 // 素数筛法
- poj——2689(数论之素数筛法)
- AS3的BitmapData内存占用
- HashSet类
- 第2.1章 hadoop之mrunit自定义writable
- Java EE基础知识学习(三)
- 排序算法
- HDU 5317(数论,素数筛法)
- 在Ubuntu16-04版本上搭建离线免费地图osm(一)
- 【SSH网上商城项目实战09】添加和更新商品类别功能的实现
- 坑了我一个小时的脚本执行
- Spring 注解
- Android自定义view之- BitMap的绘制
- 数据结构之链表
- TreeSet类
- leetcode 238 Product of Array Except Self