hdu5317 素数筛预处理
来源:互联网 发布:java sleep唤醒 编辑:程序博客网 时间:2024/05/07 21:08
F[x] 表示x的素数种类数,求max (GCD(F[i],F[j])) i,j在区间L,R里面
#include <iostream>#include<stdio.h>#include<string.h>#include<vector>#include<algorithm>#include<cmath>#include<map>#include<queue>using namespace std;const int N=1e6+10;const int MAXN=(1<<31)-1;int INF=0x7f7f7f7f;int T,n,m,k,tot;const int MOD=1e9+7;int cas=1;int L,R;int f[N][10];int prime[N];int res[N];bool vis[N];void init(){ memset(f,0,sizeof f); memset(vis,0,sizeof vis); memset(res,0,sizeof res); tot=0; for(int i=2;i<N;i++){ if(!vis[i]){ prime[tot++]=i,res[i]=1; for(int j=2;j*i<N;j++){ vis[j*i]=1; res[j*i]++; } } } for(int i=1;i<N;i++){ for(int j=0;j<10;j++) f[i][j]=f[i-1][j]; f[i][res[i]]++; }}int main(){#ifndef ONLINE_JUDGE freopen("aaa","r",stdin);#endif int T; int tmp[10]; scanf("%d",&T); init(); while(T--){ scanf("%d%d",&L,&R); for(int i=1;i<=8;i++) tmp[i]=f[R][i]-f[L-1][i]; int res=1; for(int i=2;i<=8;i++){ int cnt=0; for(int j=1;i*j<=8;j++) cnt+=tmp[i*j]; if(cnt>1) res=i; } printf("%d\n",res); } return 0;}
0 0
- hdu5317 素数筛预处理
- hdu5317(2015多校3)--RGCDQ(素数筛+枚举)
- hdu5317 RGCDQ (素数筛+递推方程)
- STD 2015 hdu5317 打表预处理
- hdu5317 RGCDQ (质因子种数+预处理)
- HDU5317
- HDU5317 RGCDQ(数论素筛)
- HDU 4548 美素数(素数筛+预处理)
- hdoj5317【素数预处理】
- lightoj1259 【素数预处理】
- Codeforces 432C Prime Swaps【筛法素数预处理+贪心】
- hdu 5317 (普通素数筛的应用)+(前缀和预处理)
- NYOJ488 素数环 【回溯】+【预处理】
- Erathosthenes算法 素数预处理 埃拉托色尼
- 素数筛选法(预处理)
- 20160322 HDU5317 RGCDQ(筛数+树状数组)
- hdu5317 RGCDQ
- HDU5317.RGCDQ
- Tcp粘包分析
- Shiny应用基础(2):HTML元素产生方法
- Vim2.1-Vim简明教程【CoolShell】【非原创】
- leetcode 最长回文串
- HDOJ Stones (优先队列)
- hdu5317 素数筛预处理
- hdu1512 & zoj2334Monkey King (左偏树 + 并查集(非优化的朴素并查集))
- Android判断网络状态
- 黑马程序员——高新技术---Java基础-set接口,Map接口
- HDU 5316 Magician
- 非常详细的测试unity与android之间的通讯操作
- JavaScript
- Css
- 链表中的头指针和头节点