0
点赞
收藏
分享

微信扫一扫

P1832 A+B Problem(再升级)

Mhhao 2022-11-07 阅读 127


​​传送门​​

P1832 A+B Problem(再升级)_#include

思路:

dp[i]表示1到i有多少种方案;
从1到n遍历,选择当前遍历的数是否可选(是否为素数);

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int vis[1010];
int ans[1010];
int cnt = 1;
void prime(int n)
{
for(int i = 2; i <= n; i++)
{
if(!vis[i])
{
ans[cnt++] = i;
for(int j = i*2; j <= n; j += i)
{
vis[j] = 1;
}
}
}
}
ll dp[1010];

int main()
{
int n;
cin>>n;
dp[0] = 1;
prime(n);
for(int i=2;i<=n;i++)
if(!vis[i])
for(int j=i;j<=n;j++)
dp[j]+=dp[j-i];
cout<<dp[n];
}


举报

相关推荐

0 条评论