博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Equal Sum Sets
阅读量:5366 次
发布时间:2019-06-15

本文共 1283 字,大约阅读时间需要 4 分钟。

题目链接:

题意:

      输入n,k,s,求在不小于n的数中找出k个不同的数的和等于s的可能性有多少种。

样例:

    

Sample Input

9 3 23
9 3 22
10 3 28
16 10 107
20 8 102
20 10 105
20 10 155
3 4 3
4 2 11
0 0 0
Sample Output
1
2
0
20
1542
5448
1
0
0

  分析:

       用递推的方法把所有的值先求出来,保存到一个数组中,然后直接输出所求值即可。

公式:d[n][k][s]=d[n-1][k][s]+d[n-1][k-1][s-1]   s>=n时

   d[n][k][s]=d[n-1][k][s]    s<n时

1 #include
2 #include
3 using namespace std; 4 int i,d[25][15][160],sum; 5 void db() 6 { 7 memset(d,0,sizeof(d)); 8 //一些特殊值 9 for( i=1;i<=20;i++) 10 { 11 d[i][1][i]=1; 12 d[i][0][0]=1; 13 } 14 for( i=2;i<=20;i++) 15 { 16 for(int k=1;k<=10;k++) 17 { 18 if(k>i) break; //不可能有集合满足19 for(int s=1;s<=155;s++) 20 { 21 sum=0; 22 sum=sum+d[i-1][k][s]; 23 if(s>=i) sum=sum+d[i-1][k-1][s-i]; 24 d[i][k][s]=sum; 25 } 26 } 27 } 28 return;29 } 30 int main() 31 { 32 db(); 33 int n,k,s; 34 cin>>n>>k>>s;35 while(n&&k&&s) 36 { 37 cout<
<
>n>>k>>s;39 }40 return 0; 41 }

 

转载于:https://www.cnblogs.com/fenhong/p/4694336.html

你可能感兴趣的文章
win10下安装配置mysql-8.0.13--实战可用
查看>>
周记2018.8.27~9.2
查看>>
MySQL中 1305-FUNCTION liangshanhero2.getdate does not exit 问题解决
查看>>
Ctrl+Alt+Down/Up 按键冲突
查看>>
python序列化和json
查看>>
mongodb
查看>>
网格与无网格
查看>>
SSH-struts2的异常处理
查看>>
《30天自制操作系统》学习笔记--第14天
查看>>
LGPL协议的理解
查看>>
1、Python基础
查看>>
Unity The Tag Attribute Matching Rule
查看>>
试着理解下kvm
查看>>
WebService学习总结(二)--使用JDK开发WebService
查看>>
Tizen参考手机RD-210和RD-PQ
查看>>
竞价广告系统-位置拍卖理论
查看>>
策略模式 C#
查看>>
[模板]树状数组
查看>>
[HDU 6447][2018CCPC网络选拔赛 1010][YJJ's Salesman][离散化+线段树+DP]
查看>>
设计模式学习的好方法
查看>>