dfs全排列
2016-03-24 15:11
239 查看
#include<stdio.h> #include<string.h> #include<math.h> #define maxn=1000; int a[maxn],book[maxn],n,ans=0; void dfs(int step){ int i; if(step==n+1) { for(i=1;i<=n;i++) printf("%d ",a[i]); printf("\n"); ans++; return ; } for(i=1;i<=n;i++){ if(book[i]==0){ a[step]=i; book[i]=1; dfs(step+1); book[i]=0; } } } int main() { memset(book,0,sizeof(book)); memset(a,0,sizeof(a)); scanf("%d",&n); int j=1; dfs(j); printf("\n%d\n",ans); return 0; }
相关文章推荐
- 和安全有关的那些事(非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS及其他)
- 错误:java.lang.NoClassDefFoundError: com/project/common/exception/ServiceException 的解决
- code forces630 J Divisibility
- UVa 705 - Slash Maze
- CYPRESS BLE OTA详细介绍
- Hibernate 学习笔记(1):入门
- Android 计时器Timer用法 (定时执行任务)
- 给Web程序加上IP过滤器
- ExecutorService中submit和execute的区别
- JAVA內存布局
- eclipse中解决git冲突!!!!
- JAVA学习笔记------程序设计基础部分
- C++学习记录
- 浅析final 关键字
- 电脑不识别USB blaster驱动问题
- Glide 入门到精通之十七——Module 实例:自定义缓存
- Console命令详解,让调试js代码变得更简单
- socket 非阻塞模式
- 聚集索引和非聚集索引(整理)
- asp.net webform 中将前台显示出来的html标签解释为排版格式