SDUTOJ 2776 小P的故事——神奇的分组
2014-10-25 23:18
162 查看
#include<iostream> #include<math.h> #include<memory.h> using namespace std; int dp[200],a[200]; int main() { int n,i,j,m; cin>>n; while(n--) { memset(dp,0,sizeof(dp)); memset(a,0,sizeof(a)); int p=0; dp[0]=1; cin>>m; for(i=2;i<150;i++) { int k=sqrt(i); for(j=2;j<=k;j++) if(i%j==0) break; if(j>=k+1) a[p++]=i; } for(i=0;i<p;i++) for(j=a[i];j<=m;j++) dp[j]=dp[j]+dp[j-a[i]]; cout<<dp[m]<<endl; } return 0; }
相关文章推荐
- SDUTOJ 2776 小P的故事——神奇的分组 背包
- SDUTOJ 2776 小P的故事——奇妙的分组
- SDUT 2776 小P的故事——神奇的分组
- SDUT 2776 小P的故事——神奇的分组 二分
- SDUTOJ 2775 小P的故事——神奇的饭卡 背包
- 小P的故事——神奇的分组
- 寒假训练--01背包完全背包--小P的故事——神奇的分组
- 小P的故事——神奇的分组 背包
- 小P的故事——神奇的分组
- 小P的故事——神奇的分组(完全背包)
- SDUTOJ 2773 小P的故事——神奇的Dota 枚举或背包或搜索
- SDUTOJ 2777 小P的故事——神奇的换零钱 背包
- SDUTOJ 小P的故事——神奇的换零钱
- SDUTOJ 2775 小P的故事——神奇的饭卡
- 小P的故事——神奇的Dota
- 小P的故事——神奇的换零钱
- 小P的故事——神奇的换零钱
- 奇妙生活-神奇的数字-1的故事
- 小P的故事——神奇的换零钱