问题
给定集合S,S中有n个正整数,M是一个正整数。子集和问题判定是否存在S的一个子集S1,使得S1中各元素之和等于M。请设计回溯法求解子集和问题,如果问题无解,输出“No Solution”,问题有解,则输出满足子集S1中各元素的值。
输入样例
4 31
13 24 11 7
输出样例
13 24 11 7
24 7
详解请看代码注释
源代码
#include<iostream>
using namespace std;
int* arr,*result; // arr表示数据数组;result表示解数组,用于存储解向量
int M, n, sum=0, cnt=0; // M表示目标正整数,n表示集合中的元素个数,cnt表示解的个数
void backTrack(

本文探讨了如何运用回溯法解决一个经典的算法问题:给定一个包含正整数的集合S和一个目标正整数M,判断是否能从S中找到一个子集,其元素之和等于M。通过回溯法实现,当无解时输出"No Solution",反之则输出满足条件的子集元素值。
最低0.47元/天 解锁文章
947

被折叠的 条评论
为什么被折叠?



