问题:
给定n个正整数,要求选出k个数,使得选出来的k个数的和为sum,输出方案数。
input:
第一行是整数T<=100,表示测试用例的数量。每种情况都有两行。第一行,三个整数表示n,K和S。第二行,n个整数表示正数。
output:
对于每种情况,一个整数在独立的行中表示答案。
sample input:
1
10 3 10
1 2 3 4 5 6 7 8 9 10
sample output:
4
题解:
- 对于bfs函数的应用。我们其实由n个数,那么我们就有n层,每一层有两个选择,选上这个数和不选这个数,那这样我们在每一次操作的时候进行条件判断,判断其是否到达终点。到达终点就将方案数加一即可。
void solve(int i,int sum,list<int> &res)
{
if(res.size()==k&&sum==0) //最终条件的判断
{
count++;
return;
}
if(i>=n) return;
if(res.size()