前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >93. [NOIP2001] 数的划分

93. [NOIP2001] 数的划分

作者头像
attack
发布2018-04-13 14:49:41
6050
发布2018-04-13 14:49:41
举报

问题描述 将整数n分成k份,且每份不能为空,任意两种方案不能相同(不考虑顺序)。 例如:n=7,k=3,下面三种分法被认为是相同的。 1,1,5; 1,5,1; 5,1,1; 问有多少种不同的分法。 输入:n,k (7≤n≤200,2≤k≤6) 输出:一个整数,即不同的分法。

样例

输入: 7 3

输出:4 {四种分法为:1,1,5;1,2,4;1,3,3;2,2,3;}

代码语言:javascript
复制
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 using namespace std;
 6 int read(int & n)
 7 {
 8     int flag=0,x=0;char c='/';
 9     while(c<'0'||c>'9'){c=getchar();if(c=='-')flag=1;}
10     while(c>='0'&&c<='9')x=x*10+(c-48),c=getchar();
11     if(flag)n=-x;
12     else n=x;
13 }
14 int n,m;
15 int dp[201][7];
16 int main()
17 {
18     freopen("sdhf.in","r",stdin);
19     freopen("sdhf.out","w",stdout);
20     
21     read(n);read(m);
22     for(int i=1;i<=n;i++)
23         dp[i][1]=1;
24     
25     for(int i=2;i<=n;i++)
26         for(int j=1;j<=m;j++)
27             if(j<=i)
28                 dp[i][j]=dp[i-1][j-1]+dp[i-j][j];
29     cout<<dp[n][m];
30     return 0;
31 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-05-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档