当前位置: 首页 > news >正文

HDU 1016 Prime Ring Problem (素数筛+DFS)

题目链接

题意 : 就是把n个数安排在环上,要求每两个相邻的数之和一定是素数,第一个数一定是1。输出所有可能的排列。

思路 : 先打个素数表。然后循环去搜。。。。。

 1 //1016
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <iostream>
 5 
 6 using namespace std ;
 7 
 8 bool vis[21];
 9 int prime[42] ,cs[21];
10 int n ;
11 
12 void get_prime()
13 {
14     memset(prime,0,sizeof(prime));
15     prime[1] = 1 ;
16     for(int i = 2 ; i < 40 ; i ++)
17     {
18         if(prime[i] == 0)
19         {
20             for(int j = i*i ; j < 40 ; j += i)
21                 prime[j] = 1 ;
22         }
23     }
24 }
25 
26 void DFS(int s,int cnt)
27 {
28     if(cnt == n)
29     {
30         if(prime[cs[n]+1]) return ;
31         for(int i = 1 ; i <= n - 1; i++)
32             cout << cs[i] <<" " ;
33         cout << cs[ n ]<<endl ;
34         return ;
35     }
36     for(int i = 1 ; i <= n ; i++)
37     {
38         if(!vis[i] && !prime[s+i])
39         {
40             cs[++cnt] = i ;
41             vis[i] = true ;
42             DFS(i,cnt) ;
43             cnt -- ;
44             vis[i] = false ;
45         }
46     }
47 }
48 int main()
49 {
50     int casee = 1 ;
51     get_prime() ;
52     while(  cin >> n )
53     {
54         memset(vis,false,sizeof(vis)) ;
55         cout << "Case "<<casee++ <<":" << endl ;
56         vis[1] = true ;
57         cs[1] = 1;
58         DFS(1,1) ;
59         cout << endl ;
60     }
61     return 0 ;
62 }
View Code

 

转载于:https://www.cnblogs.com/luyingfeng/p/3879072.html

相关文章:

  • java面向对象总结
  • Objective-C精选字符串处理方法
  • IO中同步、异步与阻塞、非阻塞的区别
  • SQL如何取日期中的年月
  • 使用百分比设置自动缩放图片的小技巧
  • [Spring Data MongoDB]学习笔记--MongoTemplate插入修改操作
  • 在必须返回一个对象时,不要去尝试返回一个引用
  • [转]十个利用矩阵乘法解决的经典题目
  • MVC过滤器基本使用
  • 类的其他特性
  • Windows环境下使用Cmake ndk编译fdk-aac
  • LightOJ - 1148 - Mad Counting
  • ubuntu里打开rar,zip文件方法
  • class 的使用
  • ViewSwitcher的功能和用法
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Angular 响应式表单 基础例子
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • golang 发送GET和POST示例
  • java8 Stream Pipelines 浅析
  • Java程序员幽默爆笑锦集
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • mysql_config not found
  • Nacos系列:Nacos的Java SDK使用
  • opencv python Meanshift 和 Camshift
  • Python语法速览与机器学习开发环境搭建
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • tensorflow学习笔记3——MNIST应用篇
  • 阿里云应用高可用服务公测发布
  • 从重复到重用
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 如何在GitHub上创建个人博客
  • 什么软件可以剪辑音乐?
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • ionic入门之数据绑定显示-1
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (4)logging(日志模块)
  • (LeetCode 49)Anagrams
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (十六)一篇文章学会Java的常用API
  • (十一)c52学习之旅-动态数码管
  • (转)mysql使用Navicat 导出和导入数据库
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)