您的位置:首页 > 其它

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: