日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hdu 5317 RGCDQ (2015多校第三场第2题)素数打表+前缀和相减求后缀(DP)

發(fā)布時間:2023/12/9 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu 5317 RGCDQ (2015多校第三场第2题)素数打表+前缀和相减求后缀(DP) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=5317

題意:F(x) 表示x的不同質因子的個數結果是求L,R區(qū)間中最大的gcd( F(i) , F(j) ),i、j在L,R區(qū)間內。

思路:因為2<=L < R<=1000000,所以他們的質因子最多的個數也就7個,也就是說1<=F(x)<=7,因為要求最大的GCD,所以只要知道在L,R區(qū)間內每個F(x)的情況就可以知道結果。

代碼:

1 #include <stdio.h> 2 #include <string.h> 3 #include <iostream> 4 #include <algorithm> 5 using namespace std; 6 7 const int X=1000010; 8 bool isPrime[X+1]; 9 int total;//計數 10 int prime[79000]; 11 void getPrime() 12 { 13 total=0; 14 memset(isPrime,true,sizeof(isPrime)); 15 memset(prime,0,sizeof(prime)); 16 for(int i=2;i<=X;i++) 17 { 18 if(isPrime[i]) prime[total++]=i; 19 for(int j=0; j<total && i*prime[j]<=X; j++) 20 { 21 isPrime[i*prime[j]]=false; 22 if(i%prime[j]==0) 23 break; 24 } 25 } 26 } 27 28 int dp[X][9]; 29 int num[X]; 30 void getCot() 31 { 32 memset(num,0,sizeof(num)); 33 for(int i=0;prime[i]<=1000000;i++) 34 for(int j=prime[i];j<=1000000;j+=prime[i]) 35 num[j]++; 36 } 37 38 void gao() 39 { 40 memset(dp,0,sizeof(dp)); 41 dp[2][1]=1; 42 for(int i=3;i<=1000000;i++) 43 { 44 int ans=num[i]; 45 for(int j=1;j<=7;j++) 46 dp[i][j]=dp[i-1][j]; 47 dp[i][ans]++; 48 } 49 } 50 int main() 51 { 52 int T,l,r,aa[10],ma; 53 getPrime(); 54 getCot(); 55 gao(); 56 scanf("%d",&T); 57 while(T--) 58 { 59 ma=1; 60 scanf("%d%d",&l,&r); 61 for(int i=1;i<=7;i++) 62 { 63 aa[i]=dp[r][i]-dp[l-1][i]; 64 if(aa[i]>=2&&i>ma) 65 ma=i; 66 } 67 if(aa[6]>0&&aa[3]>0) 68 ma=max(ma,3); 69 else if(aa[6]>0&&aa[2]>0||aa[4]>0&&aa[2]>0) 70 ma=max(ma,2); 71 printf("%d\n",ma); 72 } 73 return 0; 74 } View Code

?

轉載于:https://www.cnblogs.com/yjx-xx/p/4690556.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的hdu 5317 RGCDQ (2015多校第三场第2题)素数打表+前缀和相减求后缀(DP)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。