其他分享
首页 > 其他分享> > [AHOI2001]质数和分解

[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