子集和问题的一个实例为<S,c>。其中S={x1,x2,…,xn}是一个正整数的集合,c是一个正整数。子集和问题判定是否存在S的一个子集S1,使得S1中所有元素的和为c。
试设计一个解子集和问题的回溯法。
【输入样例】
5 10
2 2 6 5 4
【输出样例】
2 2 6
回溯法就是一条路一直走,不行了或则走完了就往前倒一个。 和深度优先搜索一样
#include<bits/stdc++.h>
using namespace std;
int t=0,r=0;
int w[999],x[999]={
0};
int flag;
int n,c;
void backtrack(int i)
{
if