[组合算法] 生成不重复的字符串
2007-08-22 14:34
225 查看
#include <stdio.h>
#define MAXM 10
int m, n;
int workarr[MAXM];
int record[MAXM];
void DFS(int l)
{
int i;
if (l == n)
{
for (i=0; i<n; i++)
printf("%c", 'a'+record[i]);
printf("/n");
return;
}
for (i=0; i<m; i++)
if (workarr[i] > 0)
{
workarr[i]--;
record[l] = i;
DFS(l+1);
workarr[i]++;
}
}
int main()
{
int i;
while (scanf("%d%d", &m, &n) != EOF)
{
for (i=0; i<m; i++)
workarr[i] = n;
DFS(0);
}
return 0;
}
---------------
ref: http://blog.programfan.com/article.asp?id=16993
#define MAXM 10
int m, n;
int workarr[MAXM];
int record[MAXM];
void DFS(int l)
{
int i;
if (l == n)
{
for (i=0; i<n; i++)
printf("%c", 'a'+record[i]);
printf("/n");
return;
}
for (i=0; i<m; i++)
if (workarr[i] > 0)
{
workarr[i]--;
record[l] = i;
DFS(l+1);
workarr[i]++;
}
}
int main()
{
int i;
while (scanf("%d%d", &m, &n) != EOF)
{
for (i=0; i<m; i++)
workarr[i] = n;
DFS(0);
}
return 0;
}
---------------
ref: http://blog.programfan.com/article.asp?id=16993
相关文章推荐
- 含重复字符的字符串组合算法(深度优先搜索树递归实现)
- BZOJ1856 [SCOI2010]生成字符串 【组合数】
- 程序员面试题精选100题(59)-字符串的组合[算法]
- 字符串的全排列和组合算法
- 字符串组合算法-改进版避免无效递归
- 重复字符串的判定问题(kmp 算法之优化版本)
- 史上最全的java随机数/字符串生成算法(转)
- 设计一个算法移除字符串中的重复字符,并写出测试用例。
- 字符串的全排列和组合算法
- php生成数组的使用示例 php全组合算法
- 不重复随机数列生成算法2-数组有效位置的最后一个元素移动到当前位置
- 算法:编写算法移除一个字符串中重复的字符
- 非重复生成全子集组合排列(含重复数字时,生成不重复全子集组合排列)
- 自己写的一个后缀树算法查找一个字符串的最长重复子串
- 生成{1,2,...,n}的排列的算法-组合数学
- 生成不重复的随机数的高效的算法
- 字符串全排列和组合算法
- java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串
- 根据N种规格中的M种规格值生成的全部规格组合的一种算法
- 输入一串不重复的字符串,列出所有可能的组合(java实现)