抽象DFS:k数和问题

简介: 抽象DFS:k数和问题

问题描述


给定N个整数,要求选出K个数,使得选出的K个数和为SUM


#include <iostream>
using namespace std;
int a[105];
int  n,k,sum;
int count;
void dfs(int w,int g,int s){
  if(w==n){                     //证明已经到达最后一个
    if(g==k && s==sum){
      count++;
    }
    return;
  }
  dfs(w+1,g,s);
  dfs(w+1,g+1,s+a[w]);
}
int main(){
  cin>>n>>k>>sum;
  for(int i=0;i<n;i++){
    cin>>a[i];
  }
  dfs(0,0,0);
  cout<<count;
  return 0;
} 

相关文章
|
6月前
|
分布式计算 Hadoop
|
6月前
|
分布式计算 Hadoop 数据处理
Hadoop选择合适的Combiner逻辑
【7月更文挑战第7天】
45 1
|
算法 C语言
【数据结构】二叉树的节点数,叶子数,第K层节点数,高度,查找x节点,判断是否为完全二叉树等方法【上】
文章目录 一、二叉数的结构体 二、构建二叉树,供后续测试使用 三、二叉树销毁 四、构建节点 五、二叉树的高度: 1.代码: 2.测试结果: 二叉树节点个数 1.代码: 2.测试结果:
|
算法 DataX C语言
【数据结构】二叉树的节点数,叶子数,第K层节点数,高度,查找x节点,判断是否为完全二叉树等方法【下】
六、二叉树叶子节点个数 1.代码: 2.测试结果: 七、二叉树第k层节点个数 1.代码: 2.测试结果: 八、二叉树查找值为x的节点 1.代码: 2.测试结果: 九、判断二叉树是否是完全二叉树 1.代码: 2.测试结果: 十、补充:队列代码 Queue.h Queue.c
|
存储 算法 索引
【霍罗维兹数据结构】GRAPH 图 | 基本图运算 DFS&BFS | 最小代价生成树
【霍罗维兹数据结构】GRAPH 图 | 基本图运算 DFS&BFS | 最小代价生成树
138 0
|
算法
【数据结构与算法】二叉树的深度,节点数,第k层的节点数,遍历,二叉树叶节点的个数
【数据结构与算法】二叉树的深度,节点数,第k层的节点数,遍历,二叉树叶节点的个数
312 0
|
定位技术
DFS:迷宫解的方案数
DFS:迷宫解的方案数
104 0
|
机器学习/深度学习
抽象DFS:2N皇后
抽象DFS:2N皇后