UVALive 6661 Equal Sum Sets
来源:互联网 发布:s7edge怎么关闭4g网络 编辑:程序博客网 时间:2024/06/02 14:02
Let us consider sets of positive integers less than or equal to n. Note that all elements of a set are different. Also note that the order of elements doesnt matter, that is, both {3, 5, 9} and {5, 9, 3} mean the same set.
Specifying the number of set elements and their sum to be k and s, respectively, sets satisfying the conditions are limited. When n = 9, k = 3 and s = 23, {6, 8, 9} is the only such set. There may be more than one such set, in general, however. When n = 9, k = 3 and s = 22, both {5, 8, 9} and {6, 7, 9} are possible.
You have to write a program that calculates the number of the sets that satisfy the given conditions.
Input
The input consists of multiple datasets. The number of datasets does not exceed 100.
Each of the datasets has three integers n, k and s in one line, separated by a space. You may assume 1 ≤ n ≤ 20, 1 ≤ k ≤ 10 and 1 ≤ s ≤ 155. The end of the input is indicated by a line containing three zeros.
Output
The output for each dataset should be a line containing a single integer that gives the number of the
sets that satisfy the conditions. No other characters should appear in the output.
You can assume that the number of sets does not exceed 231 − 1.
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
题意:给出三个数 n,k,s;在不小于n的找到k个使其的和等于s的可能性有多少种
#include<iostream>using namespace std;int a[3];int A[22];int ans=0;void dfs(int n,int cur){ if(cur==a[1]){ int sum=0; for(int i=0;i<a[1];i++){ sum+=A[i]; } if(sum==a[2])ans++; } int s=1; if(cur!=0)s=A[cur-1]+1; for(int i=s;i<=n;i++){ A[cur]=i; dfs(n,cur+1); }}int main(){ while(cin>>a[0]>>a[1]>>a[2]&&a[0]+a[1]+a[2]){ ans=0; dfs(a[0],0); cout<<ans<<endl; }return 0;}
- UVALive 6661 Equal Sum Sets
- [UVALive 6661 Equal Sum Sets] (dfs 或 dp)
- UVALive 6661 - Equal Sum Sets (类似硬币的DP问题)
- UvaLive 6661 Equal Sum Sets 二进制枚举/DP
- 6661 Equal Sum Sets(DP)
- Equal Sum Sets
- UVALive6661 Equal Sum Sets
- Equal Sum Sets (DFS)
- Equal Sum Sets
- B - Equal Sum Sets
- LA 6661 —— Equal Sum Sets(DP)
- Equal Sum Partitions(P3782)
- Equal Sum Partitions
- Partition Equal Subset Sum
- Partition Equal Subset Sum
- Partition Equal Subset Sum
- Partition Equal Subset Sum
- Partition Equal Subset Sum
- poj 3365 数学分类(最大的圆柱体积)
- mongodb索引
- HDU doing homework again
- zoj 3874 Permutation Graph (cdq分治+NTT)
- Deep Learning for Nature Language Processing --- 第八讲
- UVALive 6661 Equal Sum Sets
- uva 11218 KTV 暴力(回溯)
- java重载方法重写、继承封装
- Ubuntu之Gitlab安装
- matlab mex
- 爪哇爪瓜_继承与多态
- win7下,本机Apache虚拟主机配置
- 黑马程序员-C语言条件编译的使用
- 类的组成部分