[AHOI2001]质数和分解
作者:互联网
[Time Gate]
https://www.luogu.org/problemnew/show/P2563
【解题思路】
一道改编的01背包
首先筛法求出素数表,然后套用01背包模板即可
【code】
1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 int i,j,n,p[205],f[205],np[205],ps=0; 5 void GetPrime(){ 6 int i,j; 7 for (i=2; i<200; i++){ 8 if (!np[i]){ 9 p[++ps]=i; 10 for (j=i*i; j<200; j+=i) 11 np[j]=1; 12 } 13 } 14 } 15 16 int main(){ 17 //freopen(".in","r",stdin); 18 //freopen(".out","w",stdout); 19 GetPrime(); 20 while(scanf("%d",&n)==1){ 21 memset(f,0,sizeof(f)); 22 f[0]=1; 23 for(i=1;i<=ps;i++){ 24 for(j=p[i];j<=n;j++) 25 f[j]+=f[j-p[i]]; 26 } 27 printf("%d\n",f[n]); 28 } 29 return 0; 30 }
标签:AHOI2001,01,205,int,质数,分解,include,背包 来源: https://www.cnblogs.com/66dzb/p/11188177.html