HDU 1016 Prime Ring Problem(DFS)
2015-08-28 22:27
507 查看
准备考研的期间做到了PAT上的搜索题,发现以前自己在写HDUOJ的时候貌似都把搜索题选择性的跳过了,所以这一题基本可以说是我写的第一道有关图论的题,在做PAT的时候发现了自己在数据结构操作的不足,接下来的日子里应该会加强对于链表树图的操作,又要开始写HDUOJ的日子了。这一题大致参考了网上别人AC的代码。
#include<iostream> #include<stdio.h> using namespace std; int n,visit[21],a[21]; bool isPrime(int x){ if(x == 1 || x== 2 || x == 3) return true; for(int i = 2;i*i<=x;i++){ if(x % i == 0) return false; } return true; } void dfs(int m){ if(m == n && isPrime(a[m-1]+a[0])){ for(int i = 0;i<m-1;i++) printf("%d ",a[i]); printf("%d\n",a[m-1]); } else{ for(int i = 2;i<=n;i++){ if(visit[i] == 0){ if(isPrime(a[m-1]+i)){ visit[i] = 1; a[m++] = i; dfs(m); m--; visit[i] = 0; } } } } } int main(){ int num = 0; while(~scanf("%d",&n)){ num++; printf("Case %d:\n",num); memset(visit,0,sizeof(int)*n); a[0] = 1; dfs(1); printf("\n"); } return 0; }
相关文章推荐
- UVA1001 Say Cheese (dijkstra)
- UVA821 PageHopping (Floyd)
- 5步避免Java堆空间错误
- 替代NSTimer的block计时器!! !
- Redis中的键值对设计
- JVM内存死锁问题分析
- java产生XML文件
- USACO草地排水
- 字符串与模式匹配(一)——KMP算法
- java异常处理
- 杭电ACM2050java做法
- C++泛型 && Java泛型实现机制
- 【JavaSE】day08_RandomAccessFile
- 减少GC开销的技巧
- bootstrap 和 jqueryui
- 面向对象的方法重写数组功能
- hdu2112 spfa
- java jvm 不同的垃圾回收器的比较
- 总结了一下,关于codeblocks的主题导入
- WPF之分页查询