Prime Ring Problem

                                                                                                               Time Limit: 4000/2000
MS (Java/Others)    

                                                                                                             Memory Limit: 65536/32768
K (Java/Others)

->Link1<-

->Link2<-

小白书上的经典之题,很早就做过了,这个暑假再复习(学习)搜索又拿出来做;

题意:整数1~n逆时针排列成环问是否有这样的组合两两相邻元素和为素数,如果有按字典序从小到大全部输出;

思路:因为第一位都是1,我们用递归深搜思想从第二位开始尝试放置每个数,如果此数没用过并且与前一个数和为素数则继续搜索第三位....如果成功则全部输出返回,别忘了清除使用标志;

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int n,a[40],isp[40],vis[40];
  4. int is_prime(int x)
  5. {
  6. int i;
  7. for(i=2; i*i<=x; i++)
  8. if(x%i==0)
  9. return 0;
  10. return 1;
  11. }
  12. void dfs(int cur)
  13. {
  14. if(cur==n&&isp[a[0]+a[n-1]])//最后一个数与第一个数和也为素数则成功;
  15. {
  16. for(int i=0; i<n; i++)
  17. {
  18. printf("%d",a[i]);
  19. if(i!=n-1)
  20. printf(" ");//HDu上空格也是坑;
  21. }
  22. printf("\n");
  23. return ;
  24. }
  25. for(int i=2; i<=n; i++)//尝试每一个数;
  26. if(!vis[i]&&isp[i+a[cur-1]])
  27. {
  28. a[cur]=i;
  29. vis[i]=1;//使用标志;
  30. dfs(cur+1);
  31. vis[i]=0;//全局变量记得恢复原状;
  32. }
  33. }
  34. int main()
  35. {
  36. int i,m=0;
  37. for(i=2; i<=40; i++)
  38. isp[i]=is_prime(i);//数据不大,打表;
  39. while(~scanf("%d",&n)&&n)
  40. {
  41. memset(vis,0,sizeof(vis));
  42. printf("Case %d:\n",++m);
  43. a[0]=1;//从0开始第一位;
  44. dfs(1);
  45. printf("\n");
  46. }
  47. return 0;
  48. }

1016-Prime Ring Problem,素数环,深搜!的更多相关文章

  1. hdu 1016 Prime Ring Problem (素数环)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 题目大意:输入一个n,环从一开始到n,相邻两个数相加为素数. #include <iost ...

  2. Prime Ring Problem素数环(HDU1016)

    Prime Ring Problem 思路:先看成一条链,往里头填数,满足任意相邻两数和为质数(这可以打表预处理出40以内的所有质数,扩展的时候枚举),填完了后检查首尾是否满足条件.字典序可以采用扩展 ...

  3. [HDU 1016]--Prime Ring Problem(回溯)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 Prime Ring Problem Time Limit: 4000/2000 MS (Jav ...

  4. HDOJ(HDU).1016 Prime Ring Problem (DFS)

    HDOJ(HDU).1016 Prime Ring Problem (DFS) [从零开始DFS(3)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架 ...

  5. HDU 1016 Prime Ring Problem(素数环问题)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1016 Prime Ring Problem Time Limit: 4000/2000 MS (Jav ...

  6. HDU - 1016 Prime Ring Problem 经典素数环

    Prime Ring Problem A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., ...

  7. hdu 1016 Prime Ring Problem(DFS)

    Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  8. hdu 1016 Prime Ring Problem(dfs)

    Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  9. HDU 1016 Prime Ring Problem(经典DFS+回溯)

    Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  10. 杭电oj 1016 Prime Ring Problem

    Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

随机推荐

  1. 自定义View(11)**在onDraw中使用矩阵Matrix

    1.代码示例 1.1 效果 原图 : 其尺寸为162 x 251,示例中的红点是变形的锚点. 变形之后: 1.2 代码 package com.e.weixin.session.view; impor ...

  2. Java中的流(4)InputStream,InputStreamReader,BufferedReader关系

    InputStream是字节流,InputStreamReader将字节流转成字符流,BufferedReader将字符流转成字符缓冲,开始读字符. 1.InputStream.OutputStrea ...

  3. 员工管理系统(集合与IO流的结合使用 beta3.0 BufferedReader / ObjectOutputStream)

    Employee.java package cn.employee_io; public class Employee { private String empId; private String n ...

  4. 数据流和ByteArray

    问题:如何把一个long类型的数写进一个文件里 所以现在有DataInputStream和DataOutputStream 这两个是节点流 例子代码: import java.io.*; public ...

  5. 225 Implement Stack using Queues 队列实现栈

    Implement the following operations of a stack using queues. push(x) -- Push element x onto stack.pop ...

  6. win7 系统 右键很慢

    一般都是显卡驱动造成的, 在桌面按右键反应慢,通常都是显卡驱动程序惹的祸,最最简单有效的办法就是:开始--运行--. 运行regsvr32 /u igfxpph.dll

  7. 多个文本框点击复制 zClip (ZeroClipboard)有关问题

    <script type="text/javascript" src="js/jquery.min.js"$amp;>amp;$lt;/script ...

  8. ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第三天(非原创)

    文章大纲 一.课程介绍二.简单功能实现三.图片上传功能实战四.项目源码与资料下载五.参考文章   一.课程介绍 一共14天课程(1)第一天:电商行业的背景.淘淘商城的介绍.搭建项目工程.Svn的使用. ...

  9. Spark学习之基于MLlib的机器学习

    Spark学习之基于MLlib的机器学习 1. 机器学习算法尝试根据训练数据(training data)使得表示算法行为的数学目标最大化,并以此来进行预测或作出决定. 2. MLlib完成文本分类任 ...

  10. Spark学习之在集群上运行Spark(6)

    Spark学习之在集群上运行Spark(6) 1. Spark的一个优点在于可以通过增加机器数量并使用集群模式运行,来扩展程序的计算能力. 2. Spark既能适用于专用集群,也可以适用于共享的云计算 ...