当前位置: 首页 > 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;
}

http://www.dtcms.com/a/68584.html

相关文章:

  • 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中的文件上传错误
  • 《计算机图形学》第二课笔记-----二维变换的推导
  • 时序数据库 TDengine 到 MySQL 数据迁移同步
  • 【实战解析】smallredbook.item_get_video API:小红书视频数据获取与电商应用指南
  • 事件总线EventBus原理剖析
  • OpenHarmony自定义子系统、部件与模块
  • 31、map deque list的实现原理【中高频】
  • DeepSeek 助力 C++ 开发:探索智能编程新境界
  • 数字电路 | 触发器 / 单稳态触发器 / 双稳态触发器
  • 【论文解读】Contrastive Learning for Compact Single Image Dehazing(AECR-Net)
  • 【Linux】从互斥原理到C++ RAII封装实践
  • 蓝桥每日打卡--背包问题