习题10-5 不同素数之和 uva 1213
来源:互联网 发布:网络购票退票手续费 编辑:程序博客网 时间:2024/06/15 23:10
点击打开链接
题意:输出N,K,选K个素数,使他们的和为N,问有多少种方案?
令dp[N][K]表示选K个素数和为N,则有dp[N][K]=dp[N-primes[i]][K-1]。
#include<bits/stdc++.h> using namespace std;const int maxn=10005;vector<int> primes;int vis[maxn];int dp[maxn][maxn];void init(){int m=sqrt(maxn+0.5);for(int i=2;i<=m;i++)if(!vis[i])for(int j=i*i;j<=maxn;j+=i)vis[j]=1;for(int i=2;i<=maxn;i++)if(!vis[i]) primes.push_back(i);}int main() { //freopen("E:\\ACM\\test.txt","r",stdin);init();int N,K;while(cin>>N>>K,N+K){memset(dp,0,sizeof(dp));dp[0][0]=1;for(int i=0;i<primes.size();i++)for(int j=N;j>=primes[i];j--)for(int k=1;k<=14;k++)dp[j][k]+=dp[j-primes[i]][k-1];cout<<dp[N][K]<<endl;} return 0;}
阅读全文
1 0
- 习题10-5 不同素数之和 uva 1213
- 习题10-5 不同素数之和 UVa1213
- 习题10-5 UVA - 1213 Sum of Different Primes 不同的素数之和(DP + 素数打表)
- uva 1213 不同素数之和
- 习题10-5 连续素数之和 uva 1210
- 习题10-6 UVA - 1210 Sum of Consecutive Prime Numbers 连续素数之和(滑动窗口)
- 习题10-6 连续素数之和 UVa1210
- 习题10-4 UVA 1644 Prime Gap(素数打表+二分查找)
- 素数之和(筛法求素数)
- 习题9-5 UVA 242
- 习题10-4 素数间隔 UVa1644
- 习题10-7 几乎是素数 UVa10539
- 四个素数之和问题
- 100以内素数之和
- 一百以内素数之和
- 素数判定 因子之和
- A1035. 素数之和
- FAFU OJ 素数之和
- 编程思想之多线程与多进程(3)——Java中的多线程
- hd 1874畅通工程续
- 机器学习的统计方法解释
- Android单元测试-作用以及简单示例
- IDEA的笔记(1A )
- 习题10-5 不同素数之和 uva 1213
- 【LeetCode】167. Two Sum II
- 文章标题
- skynet API
- WindowLess RichEdit 实现QQ聊天窗口的气泡效果,设计思路和方法。
- ETL作业调度工具TASKCTL的两个重大突破
- LinkedHashMap简单解析
- Qt中如何改变QProgressBar中进度条的颜色
- 笨办法学 Python · 续 练习 36:简单的计算器