题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016

哈哈,状态来了就是不一样,很快就A了。

注意的位置是,最后一个点,要与第一个点比较。

  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int prime[]= {}; ///是素数就是0
  5. bool vis[];
  6. int ans[];
  7. int n;
  8.  
  9. void dfs(int k)
  10. {
  11. //printf("%d\n",k);
  12. if(k==n+)
  13. {
  14. for(int i=; i<n; i++)
  15. printf("%d ",ans[i]);
  16. printf("%d\n",ans[n]);
  17. return ;
  18. }
  19. else if(k==n)
  20. {
  21. for(int i=; i<=n; i++)
  22. {
  23. if(!vis[i]&&!prime[ans[k-]+i]&&!prime[i+ans[]])
  24. {
  25. ans[k] = i;
  26. vis[i]=true;
  27. dfs(k+);
  28. vis[i] = false;
  29. }
  30. }
  31. }
  32. else
  33. {
  34. for(int i=; i<=n; i++)
  35. {
  36. if(!vis[i]&&!prime[ans[k-]+i])
  37. {
  38. ans[k] = i;
  39. vis[i]=true;
  40. dfs(k+);
  41. vis[i] = false;
  42. }
  43. }
  44. }
  45. }
  46.  
  47. int main()
  48. {
  49. ///打出40个素数来
  50. for(int i=; i<; i++)
  51. if(!prime[i])
  52. for(int j=i*i; j<; j+=i)
  53. prime[j] = ;
  54.  
  55. /*for(int i=2; i<=45; i++)
  56. {
  57. if(!prime[i])
  58. printf("%d ",i);
  59. }
  60. puts("");*/
  61.  
  62. int Case = ;
  63. while(scanf("%d",&n)!=EOF)
  64. {
  65. memset(vis,false,sizeof(vis));
  66. memset(ans,,sizeof(ans));
  67. printf("Case %d:\n",Case++);
  68. ans[] = ;
  69. vis[] = true;
  70. dfs();
  71. puts("");
  72. }
  73.  
  74. return ;
  75. }

HDU(1016),打素数环的更多相关文章

  1. HDU 1016 素数环(dfs + 回溯)

    嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 一道很典型的dfs+回溯: 根据题意首先进行初始化,即第一个位置为1,然后进行dfs, ...

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

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

  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(DFS)

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

  6. one recursive approach for 3, hdu 1016 (with an improved version) , permutations, N-Queens puzzle 分类: hdoj 2015-07-19 16:49 86人阅读 评论(0) 收藏

    one recursive approach to solve hdu 1016, list all permutations, solve N-Queens puzzle. reference: t ...

  7. hdu 1016

    这是一道考搜索的题目.这道题我用深搜解决了,不过说实话自己对于深搜理解得并不深刻,在这里对于这一题总结一下. 这道题输入为一个实数n,要求输出有1~n这n个数所组成的所有素数环(这是素数环),素数环的 ...

  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. nyoj 488 素数环

    素数环 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 有一个整数n,把从1到n的数字无重复的排列成环,且使每相邻两个数(包括首尾)的和都为素数,称为素数环. 为了简 ...

随机推荐

  1. WIN2008R2 asp.net core的配置

    配置IIS Windows Server上通过“添加角色和功能”,桌面Windows上通过“启用和关闭Windows功能”来安装和配置IIS.确保勾选Web服务和“IIS 管理控制台”: Window ...

  2. 汉诺塔问题hdu 2065——找规律

    这类题目就是纸上模拟,找规律. 问题描述:在一块铜板上有三根杆,目的是将最左边杆上的盘全部移到右边的杆上,条件是不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允 ...

  3. java多线程-创建线程

    大纲: Thread创建线程. Runnable接口. Callable接口. 小结 一.java创建线程--继承Thead类 创建一个类继承Thead类,并重写run方法. class Test { ...

  4. vue快速入门(二)

    工程搭建完成,接下来如何使用. 首先找到src\rooter\index.js文件 这里是路由文件配置要访问的组件,这个会在后期说明 这里的components/A 是组件里边的 需要手动 创建A.v ...

  5. plSql添加快捷键设置

    汉化版:工具-首选项-用户界面-编辑器-自动替换-定义文件 英文版:Tools->Perferences->Editor中Autoreplaces选择配置的shortcuts 常用快捷键设 ...

  6. Windows屏幕模糊,图片打开慢等解决方案

    百度经验

  7. 安装mplayer2和smplayer2

    MPlayer2 PPA源安装,打开终端,输入命令: sudo add-apt-repository ppa:motumedia/mplayer-daily sudo apt-get update s ...

  8. 工作采坑札记:3. Spark中es-hadoop插件异常解决

    1. Es-Hadoop异常: org.elasticsearch.hadoop.EsHadoopException: Could not write all entries [615/300864] ...

  9. siteserver学习笔记

    1.安装 安装前的准备工作 参考https://docs.siteserver.cn/getting-started/#/how-to-install-siteserver-cms官网的文档写的很详细 ...

  10. .NET MVC强类型参数排除和包含属性

    MVC接收强类型对象时排除或只接收某几个属性时可使用Bind特性: Bind(Include="属性");如果相包含多个属性可以用逗号分割符分开:Bind(Include=&quo ...