HDU 5317 RGCDQ (素因子分解+預處理)
題目連結:傳送門
題意:
求區間[l,r]所有數的素因子的種類的最大的最大公約數。。。額,不知道怎麼描述了。。。
比如說區間內的所有數的素因子種類分別為1,2,3,4,5,6,7那麼結果就是gcd(3,6)
分析:
資料的範圍是1~1000000,因子數最大為7,我們首先要預處理出所有數的數的因子數,但是因為
資料的範圍比較大我們不能直接暴力求結果,因為因子數的可能取值比較小,因此我們可以預處
理出每種取值數的字首和,然後就可以在O(1)的的時間內求出區間內每種取值的數。
程式碼如下:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn = 1e3+10;
int pri[maxn],cnt;
bool vis[maxn];
void getprime(){
cnt=0;
memset(vis,0,sizeof(vis));
for(int i=2;i<maxn;i++){
if(!vis[i]){
pri[cnt++]=i;
for(int j=i+i;j<maxn;j+=i)
vis[j]=1;
}
}
}
int num[1000001];
int sum[1000001][8];
void init(){
getprime();
int ff=0;
for(int i=0;i<1000001;i++){
int tmp = i;
num[i]=0;
for(int j=0;j<cnt&&pri[j]*pri[j]<=tmp;j++){
if(tmp%pri[j]==0){
num[i]++;
while(tmp%pri[j]==0) tmp/=pri[j];
}
}
if(tmp>1) num[i]++;
ff=max(num[i],ff);
}
sum[0][0]=0;sum[0][1]=0;sum[0][2]=0;sum[0][3]=0;
sum[0][4]=0;sum[0][5]=0;sum[0][6]=0;sum[0][7]=0;
for(int i=1;i<1000001;i++){
for(int j=1;j<=7;j++)
sum[i][j]=sum[i-1][j];
sum[i][num[i]]++;
}
}
int a[10];
int main()
{
init();
int t,l,r;
scanf("%d",&t);
while(t--){
scanf("%d%d",&l,&r);
int tag = 0;
for(int i=7;i>=1;i--)
a[i]=sum[r][i]-sum[l-1][i];
for(int i=7;i>=3;i--){
if(a[i]>=2){
tag = i;
break;
}
}
if(tag){
printf("%d\n",tag);
}
else{
if(a[3]>=1&&a[6]>=1){
puts("3");
continue;
}
else if((a[2]>=1&&a[4]>=1)||a[2]>=2){
puts("2");
continue;
}
else puts("1");
}
}
return 0;
}
相關文章
- 1366: 分解質因子
- 整數因子分解問題
- 影像行畫素處理
- webgl 影像處理2---影像畫素處理Web
- 影象中的畫素處理
- 質數判斷、質因子分解、質數篩
- 初等數論-01-整數的因子分解
- -RGB畫素值分解的含義-
- 影像預處理
- 【hdu】口算訓練/二分/質因數分解
- 影像預處理方法
- 資料預處理
- 4.【Python】分類演算法—Factorization Machine(FM,因子分解機)Python演算法Mac
- HDU 4135 Co-prime(容斥原理+分解質因數)
- Python 影像處理 OpenCV (2):畫素處理與 Numpy 操作以及 Matplotlib 顯示影像PythonOpenCV
- ACM-ICPC 2018 南京賽區網路預賽__J. Sum【尤拉篩法+質因子分解+思維】ACM
- 資料預處理 demo
- 【scikit-learn基礎】--『預處理』之 缺失值處理
- 藍橋杯 演算法訓練 素因子去重(Java)演算法Java
- 文字檢測預處理地址
- 特徵工程之特徵預處理特徵工程
- 預處理技術文獻
- nlp 中文資料預處理
- TANet資料預處理流程
- 程式環境和預處理
- split用法與影像預處理
- hdu 5698 瞬間移動 【質因數分解求組合數】
- SPM12之fMRI批次預處理——NII檔案處理
- 因子圖相關理論彙總
- 文字預處理技術詳解
- 資料分析--資料預處理
- 資料預處理-資料清理
- 資料預處理方法彙總
- yai 請求預處理指令碼AI指令碼
- 資料預處理和特徵工程特徵工程
- 深度學習--資料預處理深度學習
- 預處理指令、構建大型程式
- 2.資料及其預處理
- .net 預處理指令符的使用