回溯法-子集和数问题
2011-03-24 23:13
211 查看
/* 回溯法-子集和数问题 */ #include <stdio.h> int M,n; int w[100]; int x[100]; void SumOfSub(int s, int k, int r) { //s=w[1]*x[1]+...+w[k-1]*x[k-1] //r=w[k]+...w //w[i]需要按非降次序排列 int i; x[k]=1; for(i=1; i<=k; i++) printf("%d", x[i]); printf("/n"); if(s+w[k]==M) //子集找到 { printf("ans:"); for(i=1; i<=k; i++) printf("%d", x[i]); printf("/n"); }else if(s+w[k]+w[k+1]<=M) SumOfSub(s+w[k], k+1, r-w[k]); if(s+r-w[k]>=M && s+w[k+1]<=M) { x[k]=0; SumOfSub(s, k+1, r-w[k]); } } int main() { int s,k,r; n=4; w[1]=7; w[2]=11; w[3]=13; w[4]=24; M=31; s=0; k=1; r=55; SumOfSub(s, k, r); getchar(); return 0; }
相关文章推荐
- 回溯法之子集和问题
- 回溯之子集树和排列树(子集和问题)
- 子集和问题 (回溯搜索)
- 子集与子集和问题(Subset sum)的递归回溯解
- 回溯法解决子集和问题
- 回溯法-------子集和数问题
- 回溯问题+幂集、排列、子集和问题、八皇后问题
- 两种回溯方法解决子集问题的思路 leetcode 78. Subsets
- 子集和数问题 C++程序实现 回溯
- 回溯——“子集之和”问题
- 回溯-子集问题
- 回溯题目/排列、组合、子集问题
- 子集和数问题_回溯
- 子集与子集和问题(Subset sum)的递归回溯解
- c语言素数环问题(回溯)
- 文献:利用自驱动分子马达并行计算子集和问题 Parallel computation with molecular-motor-propelled agents...(PNAS)
- 回溯法解n纸币凑数问题
- 八皇后问题 回溯法
- 回溯算法之集装箱问题
- 连续邮资问题(回溯+动态规划)