题目链接:Uva 552

思路分析:时间限制为3s,数据较小,使用深度搜索查找所有的解。

代码如下:

  1. #include <iostream>
  2. #include <string.h>
  3. using namespace std;
  4.  
  5. const int MAX_N = ;
  6. int n;
  7. int A[MAX_N], vis[MAX_N];
  8.  
  9. int is_prime( int n )
  10. {
  11. if ( n == )
  12. return true;
  13.  
  14. for ( int i = ; i * i <= n; ++i )
  15. if ( n % i == )
  16. return false;
  17.  
  18. return true;
  19. }
  20.  
  21. void dfs( int cur )
  22. {
  23. if ( cur == n && is_prime( A[] + A[n - ] ) )
  24. {
  25. int i = ;
  26.  
  27. for ( i = ; i < n - ; ++i )
  28. printf( "%d ", A[i] );
  29. printf( "%d", A[i] );
  30. printf( "\n" );
  31. }
  32. else
  33. {
  34. for ( int i = ; i <= n; ++i )
  35. {
  36. if ( !vis[i] && is_prime( i + A[cur - ] ) )
  37. {
  38. A[cur] = i;
  39. vis[i] = ;
  40. dfs( cur + );
  41. vis[i] = ;
  42. }
  43. }
  44. }
  45. }
  46.  
  47. int main( )
  48. {
  49. int count = ;
  50.  
  51. while ( scanf( "%d", &n ) != EOF )
  52. {
  53. if ( count != )
  54. printf( "\n" );
  55.  
  56. A[] = ;
  57. memset( vis, , sizeof( vis ) );
  58. printf( "Case %d:\n", count++ );
  59. dfs( );
  60. }
  61.  
  62. return ;
  63. }

Uva 552 Prime Ring Problem(dfs)的更多相关文章

  1. UVA - 524 Prime Ring Problem(dfs回溯法)

    UVA - 524 Prime Ring Problem Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & % ...

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

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

  3. UVa 524 Prime Ring Problem(DFS , 回溯)

    题意  把1到n这n个数以1为首位围成一圈  输出全部满足随意相邻两数之和均为素数的全部排列 直接枚举排列看是否符合肯定会超时的  n最大为16  利用回溯法 边生成边推断  就要快非常多了 #inc ...

  4. uva 524 prime ring problem——yhx

      Prime Ring Problem  A ring is composed of n (even number) circles as shown in diagram. Put natural ...

  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. Prime Ring Problem(dfs水)

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

  7. Hdu1016 Prime Ring Problem(DFS) 2016-05-06 14:27 329人阅读 评论(0) 收藏

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

  8. Prime Ring Problem (DFS练习题)

    K - Prime Ring Problem ============================================================================= ...

  9. hdu1016 Prime Ring Problem(DFS)

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

随机推荐

  1. matlab画甘特图

    近期为发小论文一直在研究作业调度问题,好不easy把数据搞出来了,结果又被画甘特图给难住了,查了各种资料.anygantt,highchart.Jfree chart等都试了,效果都不咋好.无意中留意 ...

  2. Jquery的一些取值

    //获取当前节点的html代码(包括当前节点),prop用于获取与设置Html元素的原生属性 $("#tmpMsgObj").prop("outerHTML") ...

  3. hdu 5104 Primes Problem(prime 将三重循环化两重)

    //宁用大量的二维不用量小的三维 #include <iostream> #include<cstdio> #include<cstring> using name ...

  4. BZOJ 3612: [Heoi2014]平衡( dp )

    枚举Fl, 就变成一个整数划分的问题了...f(i,j) = f(i-j,j-1)+f(i-j,j)-f(i-N-1,j-1)递推.f(i,j)表示数i由j个不同的数组成,且最大不超过N的方案数 -- ...

  5. C++对象模型4--有重写的单继承

    有重写的单继承 派生类中重写了基类的print()函数. //Derived_Overwrite.h #pragma once #include "base.h" class De ...

  6. php分页实例附代码

    一个典型的PHP分页实例代码分享,学习php的朋友肯定用得到,主要是了解思路: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...

  7. hdu 3333 Turing Tree

    题目链接 给n个数, m个询问, 每次询问输出区间内的数的和, 相同的数只计算一次. 数组里的数是>-1e9 <1e9, 可以把它离散以后用莫队搞... #include <iost ...

  8. shell学习-读取输入

    功能:读取输入,打印:如果长度小于MINLEN,那么输出空格. #!/bin/bash # paragraph-space.sh # Insert a blank line between parag ...

  9. ECMAScript 5中新增的数组方法

    ECMAScript 5中定义了9个新的数组方法,用于遍历.映射.过滤.检测.简化和搜索数组. 在开始介绍之前,很有必要对这几个新增的数组方法做一个概述.首先,大多数方法的第一个参数接收一个函数,并且 ...

  10. 面试题:给定一个长度为N的数组,其中每个元素的取值范围都是1到N。判断数组中是否有重复的数字

    题目:给定一个长度为N的数组,其中每个元素的取值范围都是1到N.判断数组中是否有重复的数字.(原数组不必保留) 方法1.对数组进行排序(快速,堆),然后比较相邻的元素是否相同.时间复杂度为O(nlog ...