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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Codechef Coders’Legacy 2018 CLSUMG Sum of Primes

發布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codechef Coders’Legacy 2018 CLSUMG Sum of Primes 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description

  • f(x) 表示把 x 拆分成兩個質數之和的方案數。

  • 例如 f(10)=2 , 因為 10=3+7=5+5

  • T 次詢問,每次給出 n,問有多少對 (a,b) 滿足 0abnf(a)+f(b)=f(n)

  • 數據范圍:1T50n1,000,000

Sample Input:

3
1
5
10

Sample Output:

1
4
21

Solution

  • 我們把質數看做 1 ,非質數看成 0 。

  • 即設一個數組 h[i] ,若 i 為質數則 h[i]=1 ,否則 h[i]=0

  • n106 ,我們可以直接 O(n) 篩出 h[i]

  • 觀察 f[i] 的定義和數論卷積的定義,我們可以愉快地發現 f 就是兩個 h 卷起來!

  • 之后再去一下重就能預處理出 f 了!用 FFT 快速算 f[i] 可以做到 O(n?log?n)

  • 接下來就可以輕松地處理詢問了。

  • 用一個桶直接 O(n) 掃一遍就可以啦!

  • 倒著枚舉 i ,則答案加上 t[f[n]?f[i]] ,之后 t[f[i]]++

  • 總時間復雜度 O(n?log?n)

Code

#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; typedef long long LL; const int N=1e6+5; const double Pi=acos(-1.0); struct comp {double r,i;comp(){}comp(double rr,double ii){r=rr,i=ii;}comp operator +(const comp &x)const{return comp(r+x.r,i+x.i);}comp operator -(const comp &x)const{return comp(r-x.r,i-x.i);}comp operator *(const comp &x)const{return comp(r*x.r-i*x.i,i*x.r+r*x.i);} }f1[N<<2],f2[N<<2]; int T,n,m; int f[N],g[N],h[N],rev[N<<2],tt[N]; bool bz[N]; inline void FFT(comp *y,int ff) {for(int i=0;i<m;i++)if(i<rev[i]) swap(y[i],y[rev[i]]);for(int h=2;h<=m;h<<=1){comp wn(cos(2*Pi/h),ff*sin(2*Pi/h));for(int i=0;i<m;i+=h){comp w(1,0);for(int k=i;k<i+h/2;k++){comp u=y[k],t=w*y[k+h/2];y[k]=u+t;y[k+h/2]=u-t;w=w*wn;}}}if(ff==-1) for(int i=0;i<m;i++) y[i].r/=m; } int main() {for(int i=2;i<N;i++){if(!bz[i]) g[++g[0]]=i;for(int j=1;j<=g[0] && i*g[j]<N;j++){bz[i*g[j]]=true;if(i%g[j]==0) break;}}for(int i=2;i<N;i++) h[i]=!bz[i];int l=0;for(m=1;m<N+N;m<<=1) l++;for(int i=0;i<m;i++) rev[i]=rev[i>>1]>>1|(i&1)<<l-1;for(int i=0;i<N;i++) f1[i]=f2[i]=comp(h[i],0);FFT(f1,1),FFT(f2,1);for(int i=0;i<m;i++) f1[i]=f1[i]*f2[i];FFT(f1,-1);for(int i=1;i<N;i++) f[i]=(int)(f1[i].r+0.5);for(int i=1;i<N;i++)if(i&1) f[i]>>=1; else f[i]=(f[i]+h[i>>1])>>1;scanf("%d",&T);while(T--){scanf("%d",&n);memset(tt,0,sizeof(tt));LL ans=0;for(int i=n-1;i>=0;i--){tt[f[n]-f[i]]++;ans+=tt[f[i]];}printf("%lld\n",ans);}return 0; }

總結

以上是生活随笔為你收集整理的Codechef Coders’Legacy 2018 CLSUMG Sum of Primes的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: av中文字幕在线播放 | 九九久久免费视频 | 女优一区二区三区 | 四虎视频国产精品免费 | 波多野结衣啪啪 | 中文字幕人妻丝袜乱一区三区 | 国产精品乱轮 | 精品在线第一页 | 一级在线免费观看 | 亚洲精品一级 | 美女扒开腿让人桶爽原神 | 久久丫精品久久丫 | 日韩一级伦理片 | 国产精品人人爽人人爽 | 97精品久久人人爽人人爽 | 国内特级毛片 | 国产黄在线免费观看 | 最近最经典中文mv字幕 | 狠狠操人人干 | 韩国一区二区视频 | 欧美精品一区二区久久婷婷 | 97福利网| 国产又大又黄又粗 | 97网站 | 99riav1国产精品视频 | 给我看高清的视频在线观看 | 午夜不卡av | 精品人妻一区二区三区浪潮在线 | 日本一区二区三区在线视频 | 欧美成人精品激情在线观看 | 国产福利在线观看视频 | 国产精品成人无码专区 | 久久久视频在线观看 | 国产精品无码一区二区桃花视频 | 中文字幕第12页 | 国产精品福利在线 | 亚洲天堂v | 五月天婷婷影院 | 肉大榛一进一出免费视频 | 精品亚洲一区二区三区 | 亚洲综合精品国产 | www.蜜桃av.com| 亚洲视频国产视频 | 97人人爱 | 国产免费av一区二区 | 亚洲免费观看高清完整 | 女同性αv亚洲女同志 | 久久成年人| 日韩七区 | 国产成人自拍在线 | 强伦人妻一区二区三区 | 伊人22综合 | 免费人成自慰网站 | 亚洲国产tv | 亚洲一区二区免费看 | 午夜亚洲精品 | 日韩乱码在线观看 | av毛片在线| 成人亚洲在线 | 精品一区二区在线看 | 亚洲中文字幕无码一区 | 五色天婷婷 | 国产伦精品一区 | 中文在线亚洲 | 成人做爰69片免费 | 激情免费av | 懂色一区二区三区免费观看 | 精品久久久久久亚洲精品 | 日本在线免费观看 | 日本xxxxxxxxx69| 手机在线中文字幕 | 久久久久久久久久久影院 | 欧美成人午夜影院 | 欧美特级黄色 | 91大神在线看 | 亚洲熟女乱综合一区二区 | 欧美性区| 国产麻豆免费观看 | caoporn视频在线 | 伊人院| 国产一区二区在线播放 | 中文字幕免费高清在线 | 手机在线中文字幕 | 国产91高清 | 中文字幕婷婷 | 一区久久 | 闷骚老干部cao个爽 av九九九 | 黄色另类小说 | 男人的天堂视频在线观看 | 色先锋资源网 | 亚洲精品一卡二卡 | 涩涩网站视频 | 亚洲欧美一区二区三区孕妇 | 一级黄色在线观看 | 影音先锋中文字幕在线播放 | 久久视频免费看 | www.五月婷婷.com | 色校园| 尤物国产 |