当前位置: 首页 > 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.jsqmd.com/news/42100/

相关文章:

  • (链表)判断两个单链表是否存在交点
  • (链表)逆置
  • (链表)任意删除一个结点
  • 在抖音直播推广开源作品的可行性?
  • 分布式监控体系:从指标采集到智能告警的完整之道 - 实践
  • hot 100 (1)—— 两数之和(哈希) - 指南
  • DLSS Swapper商业模式:开源软件商业化探索 - 指南
  • 性能优化体系化建设:BI平台的深度优化实践
  • AT_jsc2019_qual_e Card Collector题解
  • 20251115ACC
  • Day40(10)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project01\springboot-mybatis-quickstart
  • 还能回到原先吗 绞尽脑汁翻阅文献 这名为爱的实验 被等号连接
  • irm steam.work|iex 风险分析
  • 2025年11月手动旗杆厂家口碑推荐榜单及选购指南
  • 2025年四川电动旗杆制造厂排行榜TOP5权威发布
  • Pandas --DataFrame基本操作
  • 2025年11月全国旗杆厂家综合实力排行榜TOP5权威发布
  • debian sysctl: cannot open /etc/sysctl.conf: 没有那个文件或目录
  • 完整教程:(Linux) WSL 通过 VSCode 连接不执行 profile 问题(登录Shell问题)
  • 入侵防护技术深度解析:最新漏洞与威胁态势
  • mysql函数大全及举例 - 详解
  • 20232427 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • P14507 缺零分治 mexdnc题解
  • python多进程通信 —— 两进程通信 —— Pipe与Queue的通信性能对比
  • 解决Elctron打包成功,IPC无法注册问题。
  • Swagger开启账号验证访问
  • 标准解读——GB/T 46353—2025《信息技术 大数据 资料资产价值评估》国家标准
  • noip7
  • 代码背后的故事:docker容器名生成算法
  • 在Windows系统置顶窗口不被Win+D快捷键影响