为向量法求组合问题
2015-04-13 23:15
288 查看
#include <iostream> #include <stdio.h> #include <algorithm> #include <string.h> /* *位向量法解决组合问题,貌似是最易理解的方式 *建立一个向量,0表示不输出该位置上是字符 * 1表示输出字符 *所以这个问题太简单了,就是一个二叉树 *等到深度上限,根据向量数组输出对应的值 * */ using namespace std; const int maxn=1010; int vec[maxn]; string input; int len,cnt; void comb(int d) { if(d==len) { cnt++; //第一次都是0,什么也不输出,直接跳过 if(cnt==1) return; for(int i=0;i<len;i++) if(vec[i]) cout<<input[i]<<" "; cout<<endl; //这个要反回,否则又是一路到头撞墙了 return; } //二叉树的遍历 vec[d]=0; comb(d+1); vec[d]=1; comb(d+1); } int main() { while(cin>>input) { cnt=0; memset(vec,0,sizeof(vec)); len=input.length(); comb(0); } return 0; }貌似没什么可说的了,原理太简单了。
相关文章推荐
- 组合问题及代码实现
- CI8.5--有效括号组合问题
- 组合问题
- 十、Python编程解决组合问题(之二…
- 不同钱币组合方案问题
- (组合数学3.3.2.2)UVA 10497 - Sweet Child Makes Trouble(特殊的排列问题——错排方案数)
- (转)一维字符串数组之间组合问题的C#实现
- 求一个数组,n个元素的不同组合(排列组合问题)
- 第3周项目3—穷举法解决组合问题(百钱买百鸡)
- Python科学计算库Numpy里meshgrid用法及矩阵向量合并问题
- 组合还是继承,这是一个问题?——由模式谈面向对象的原则之多用组合、少用继承(转载)
- 组合还是继承,这是一个问题!!!
- 硬币组合问题-动态规划
- 数学中排列组合各种问题
- 常见排列组合问题公式总结
- 从排列与组合的python实现到"生日问题"的解释
- 用母函数解组合问题
- 第三周项目四穷举法解决组合问题
- TODO:排列组合问题:n个数中取m个
- 卡特兰数-组合问题