140 挑战题之排列生成
2014-12-30 19:44
190 查看
地址:http://acm.swust.edu.cn/problem/0140/
这是一个深度搜索的题,一个深搜就好。
#include<stdio.h>
#include<string.h>
int n,arr[10],book[10];
void dfs(int step)
{
int i;
if(step==n+1)
{
for(i=1;i<=n;i++)
{
printf("%d",arr[i]);
}
printf("\n");
return ;
}
for(i=1;i<=n;i++)
{
if(book[i]==0)
{
arr[step]=i;
book[i]=1;
dfs(step+1);
book[i]=0;
}
}
return ;
}
int main()
{
while(scanf("%d",&n)!=EOF)
{
memset(arr,0,sizeof(arr));
memset(book,0,sizeof(book));
dfs(1);
}
return 0;
}
这是一个深度搜索的题,一个深搜就好。
#include<stdio.h>
#include<string.h>
int n,arr[10],book[10];
void dfs(int step)
{
int i;
if(step==n+1)
{
for(i=1;i<=n;i++)
{
printf("%d",arr[i]);
}
printf("\n");
return ;
}
for(i=1;i<=n;i++)
{
if(book[i]==0)
{
arr[step]=i;
book[i]=1;
dfs(step+1);
book[i]=0;
}
}
return ;
}
int main()
{
while(scanf("%d",&n)!=EOF)
{
memset(arr,0,sizeof(arr));
memset(book,0,sizeof(book));
dfs(1);
}
return 0;
}
相关文章推荐
- 挑战题之排列生成
- 挑战题之排列生成
- 用三段140字符以内的代码生成一张1024×1024的图片
- UVA 11925 Generating Permutations 生成排列 (序列)
- 生成组合和排列
- 生成排列和组合
- 生成排列算法
- 生成可重集排列
- 生成1-n排列
- 生成1~n的排列
- stl 生成排列 && 标准IO的限定加速
- 生成排列的方法
- [jQuery编程挑战]005 使用最短的代码生成元素的闪烁效果
- 枚举生成可重集排列
- 用三段 140 字符以内的代码生成一张 1024×1024 的图片
- 递归求解几类排列组合问题(五、生成全子集组合排列)
- poj 1146 ID Codes (字符串处理 生成排列组合 生成当前串的下一个字典序排列 【*模板】 )
- python 生成排列、组合以及选择
- 解答树问题可分为子集生成和排列生成问题,都可以用回溯法解决并且是很优化的方案
- 用三段 140 字符以内的代码生成一张 1024×1024 的图片