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

和为定值的子集数 25-11-16

和为定值的子集数

|递归|二叉树|

本题思维可以扩展到类似的题中,例如:子集和、子集积、排列组合类问题
其中:该题用到未知数组长度的读取,个人认为用stringstream会比之前的string然后一个一个读入方便很多
主要思想:对于子集类问题,无非就是对第i个元素进行决策,看其是否进入子集当中,因此本代码中的attemp(int i,int k)表示对第i个元素进行决策,并且当且决策的结果为k,决策成功的标志是k与目标结果相等:这就是为何要将目标定义为全局变量。其次,另一个if语句为剪枝内容。两个attempt个人认为可以理解为二叉树的两个分支,以此穷尽所有结果。

#include<iostream>
#include<algorithm>
#include<string>
#include<sstream>	//stringstream必要的头文件using namespace std;int m,a[10010],sum=0,n=0;
string s;void attempt(int i,int k){//目前处于第i个位置(未选)//目前和为kif(k==m){sum++;return;}if(k>m||i>=n){return;}//剪枝(将整个递归结构视为二叉树结构)attempt(i+1,k);//不将第i个数加入和中attempt(i+1,k+a[i]);//将第i个数加入和中return;
}int main(){getline(cin,s);stringstream ss(s);int num;while(ss>>num){a[n++] = num;}while(cin>>m){if(m==0){break;}sum = 0;attempt(0,0);cout<<sum<<endl;}return 0;
}
http://www.gsyq.cn/news/51473.html

相关文章:

  • 分布式监控体系:从指标采集到智能告警的完整之道 - 实践
  • hot 100 (1)—— 两数之和(哈希) - 指南
  • Day40(10)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project01\springboot-mybatis-quickstart
  • 还能回到原先吗 绞尽脑汁翻阅文献 这名为爱的实验 被等号连接
  • 2025年11月手动旗杆厂家口碑推荐榜单及选购指南
  • 2025年四川电动旗杆制造厂排行榜TOP5权威发布
  • debian sysctl: cannot open /etc/sysctl.conf: 没有那个文件或目录
  • mysql函数大全及举例 - 详解
  • P14507 缺零分治 mexdnc题解
  • Swagger开启账号验证访问
  • 标准解读——GB/T 46353—2025《信息技术 大数据 资料资产价值评估》国家标准
  • 代码背后的故事:docker容器名生成算法
  • 20232428 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • HarmonyOS 5 鸿蒙Context上下文机制与资源管理详解 - 教程
  • 11.16组会
  • MFC + OpenCV 图像预览显示不全中断问题解除:GDI行填充详解
  • 飞牛os打开本机usb摄像头
  • 12306售票系统分析与实战
  • Java StringTokenizer 类 Scanner 类详解
  • Java 断言(Assert) 简介
  • 实用指南:IntelliJ IDEA 2023中为 Spring Boot 项目添加注释模板
  • 量化存储墙(三):GEMM EMA 下限解析解以及硬件静态资源分配设计
  • c# 获取当前时间
  • YOLOv3 深度解析:网络架构、核心改进与目标检测实践 - 指南
  • ai学习机是不是智商税?到底有没有用?2025年学习机推荐指南
  • docker命令提示插件
  • C语言和C++有什么区别
  • Snipe-IT支持Oauth2登录
  • 绝对值的性质
  • 智能硬件利用小聆AI自定义MCP应用开发操作讲解