DFS,好像主要是对dfs的递归调用吧,自己也不太懂,

总之,它很神奇,多看看代码吧

#include

#include

#include

#include

int n;

int isp[100];

int vis[100];

int A[100];

int is_prime(int x) //判断一个数是否为素数(该数比较小,不会引起超时)

{

int i=1,k;

for(i=2;i<=(k=(int)sqrt(x));i++)

if(x % i == 0)break;

if(i<=k)return 0;

else return 1;

return x;

}

void dfs(int cur) //深搜寻路

{

if(cur == n && isp[A[0] + A[n-1]]) //递归边界,别忘了保证第一个和最后一个数,环结构

{

int i;

printf("1");

for(i=1;i

printf(" %d",A[i]); //打印方案

printf("\n");

}

else

{

int i;

for(i=2;i<=n;i++) //尝试放置每个数 i

if(!vis[i] && isp[i + A[cur-1]]) //如果 i 没有用过,且与前一个数之和为素数

{

A[cur] = i;

vis[i] = 1; //设置使用标志,表明用过

dfs(cur + 1);

vis[i] = 0; //清除标记

}

}

}

int main()

{

int N,i;

for(i=2;i<=200;i++)

isp[i] = is_prime(i); //生成素数表(较小范围的素数表,大范围的用素数筛法)

while(scanf("%d",&N) == 1,N)

{

n = N;

A[0] = 1;

dfs(1);

}

return 0;

}

素数环java_素数环问题相关推荐

  1. 素数环-dfs回溯+二维数组记录(c++实现)

    问题描述: 给你n(2<=n<=16)个正整数1,2,3-n,你的任务是把这n个正整数组成一个环,使得任意相邻的两个整数之和为一个素数,输出有多少种合法方案. 输入 多组输入数据,每组数据 ...

  2. java编程实现素数环_回溯法解决素数环

    #include #include using namespace std;#define N 100000int isp[2 * N];int a[N];int visited[N];int is_ ...

  3. 质数环问题c语言,素数环问题

    问题描述:将从1到n这n个整数围成一个圆环,若其中任意2个相邻的数字相加,结果均为素数,那么这个环就成为素数环. n=20时,下面的序列就是一个素数环: 1 2 3 4 7 6 5 8 9 10 13 ...

  4. 编程解决素数环问题Java_回溯法解决素数环问题java实现

    素数环问题: 输入正整数n,把整数1,2,3--,n组成一个环,使得相邻两个整数之和均为素数,输出所有方案,注意同一个环应恰好输出一次.n<==16 样例输入: 6 样例输出: 1 4 3 2  ...

  5. HDOJ1016 素数环(DFS)

    题目: 1016 Prime Ring Problem 1 /* 2 素数环(顺时针逆时针)---dfs 3 使用栈 4 1-n(n最大是20,相邻最大和39,素数范围2-39之间) 5 2-39间的 ...

  6. 素数环 与 算法 全排列

    在说起全排列前,先说一下昨天碰到的一个题目(答案不是我做出来的,但是我感觉有好多个亮点,贴出来方便日后的学习): 素数环 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 ...

  7. 素数环(nyoj488)

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

  8. CCF NOI1153 素数环

    问题链接:CCF NOI1153 素数环. 时间限制: 1000 ms  空间限制: 262144 KB 题目描述 输入n(2<=n<=20),把1到n这n个数摆成一个环,要求相邻的两个数 ...

  9. UVA524 素数环 Prime Ring Problem

    UVA524 素数环 Prime Ring Problem - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/UVA52 ...

最新文章

  1. 自动驾驶进入第3阶段 ADAS黑科技守护开车人
  2. mysql主从复制及失败切换
  3. 牛客IOI周赛26-提高组(逆序对,对序列,未曾设想的道路) 题解
  4. 龙芯处理器可以适配鸿蒙os吗,SylixOS龙芯1C适配总结
  5. WordPress 数据库操作WPDB对象($wpdb)用法详解
  6. 输出质数(java)
  7. 【英语学习】【WOTD】orthography 释义/词源/示例
  8. Java1.5并发包下阻塞队列的生产者与消费者功能简单实现
  9. ubuntu18.04超级简单的安装wine QQ教程
  10. Linux Ubuntu系统下载安装NCL
  11. 计算机应用基础—多媒体技术(二)
  12. spring boot中的banner制作
  13. AutoCAD Civil 3D 介绍
  14. 翡翠手链更能够突显佩戴者的非凡气质
  15. 解决D3DCompiler_47.dll文件丢失找不到问题
  16. 怎样用比较器实现信号的衰减和饱和_水下技术 无人水下航行器在水电站隧洞检查中的应用探讨...
  17. PSO粒子群算法微电网优化调度(微电网孤岛运行优化调度)matlab程序
  18. 舵机速度控制原理细解
  19. 海外加速,让你拥有和 Steam 一样的高速下载
  20. sql复杂查询语句的使用

热门文章

  1. 每日学术速递4.17
  2. 白菜新手渗透测试靶机练习bulldog1
  3. wordpress优化禁用xml-rpc,删除xmlrpc.php防止暴力破解
  4. 微软Win10小工具
  5. 计算机中视图作用是什么意思,什么是视图视图的作用
  6. 工商银行的网上银行设置用户名登陆
  7. 健身房老板跑路怎么办
  8. 原生js的setTimeout定时和clearTimeout清除定时器
  9. 项目管理中的团队建设的精华
  10. 2022美容师(中级)复训题库及在线模拟考试