当前位置: 首页 > news >正文

深搜专题10:组合

描述 已知一个一维数组a[1..n](n<20),又已知一整数m。如能使数组a中任意几个元素之和等于m,则输出YES,反之则为NO。 输入描述 输入包括两行,第一行包含两个整数n m(1<=n<20,1<=m<=1000000),第二行输入n个整数(每个数不会超过1000000)。 输出描述 如能使数组a中任意几个元素之和等于m,则输出YES,反之则为NO。

用例输入 1

6 5

2 3 1 4 2 1

用例输出 1

YES

类似《专题3 素数圈》,为一维的深搜,比较简单。

#include <bits/stdc++.h>
using namespace std;
int a[30],n,m,flag;
void dfs(int sum,int x){
    if(sum==m){//和相等就标记
        flag=1;
        return;
    }
    for(int i=x+1;i<=n;i++){
        if(sum+a[i]<=m){
            sum+=a[i];//累加
            dfs(sum,i);
            sum-=a[i];//回溯
        }
    }
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
   	dfs(0,0);
    if(flag)cout<<"YES";
    else cout<<"NO";
    return 0;
}

相关文章:

  • AI与.NET技术实操系列:ML.NET篇
  • 长度最小的子数组-滑动窗口解法
  • 我的世界1.20.1forge模组开发进阶教程——Geckolib动画实体(3)
  • ASL集睿致远 CS5265AN typec转hdmi4k60hz方案
  • 【Java】——运算符详解
  • 60V耐压 DC降压芯片SL3037B替换MP2459 MP2451 MP2456 MP2457
  • 19、TCP连接四次挥手的过程,为什么是四次?【高频】
  • 华为hcia——Datacom实验指南——TCP传输原理和数据段格式
  • 优选算法的匠心之艺:二分查找专题(一)
  • C语言【数据结构】:时间复杂度和空间复杂度.详解
  • 传感云揭秘:边缘计算的革新力量
  • 【Qt】QWidget属性介绍
  • Vmware安装ubuntu18.04
  • Kotlin apply 方法的用法和使用场景
  • 态势感知产品通用的一些安全场景设计
  • 防火墙虚拟系统配置
  • Gitlab报错:sudo: a password is required
  • 无障碍阅读(Web Accessibility)NVDA打开朗读查看器后,enter键不生效的原因
  • 如何处理PHP中的文件上传错误
  • 《计算机图形学》第二课笔记-----二维变换的推导
  • 腾讯布局智能体开发平台,吴运声:智能体行业增长很快,仍处于百花齐放阶段
  • 闽赣两省受强对流天气影响停运多条铁路
  • “除非我去世”,马斯克称仍致力于继续执掌特斯拉
  • 保利、北京建工联合体45.45亿元竞得北京海淀区宅地,溢价率11.95%
  • 甘肃白银煤矿透水事故最新进展:3名被困矿工已无生命体征
  • 上海将完善隔代照料支持措施:建设老幼共享设施、提高科学育儿指导力度