HDU 1016 Prime Ring Problem

别再只飞不记了!用CsvView分析你的大疆飞行日志,优化航拍与排查炸机原因 本文详细介绍了如何利用CsvView工具分析大疆无人机的飞行日志,帮助用户优化航拍效率和飞行安全。通过解读飞行日志中的关键数据,如电池性能、飞行轨迹等,用户可以及时发现潜在问题并改进飞行习惯。文章还提供了事故排查方法和进阶分析技巧,适合无人机爱好者和专业飞手。 阅读详情

HDU 1016 Prime Ring Problem

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 27785    Accepted Submission(s): 12345

Problem Description

A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle separately, and the sum of numbers in two adjacent circles should be a prime.

Note: the number of first circle should always be 1.

Input

n (0 < n < 20).

Output

The output format is shown as sample below. Each row represents a series of circle numbers in the ring beginning from 1 clockwisely and anticlockwisely. The order of numbers must satisfy the above requirements. Print solutions in lexicographical order.

You are to write a program that completes above process.

Print a blank line after each case.

Sample Input

6 

8

Sample Output

Case 1: 

1 4 3 2 5 6 

1 6 5 2 3 4 

Case 2: 

1 2 3 8 5 6 7 4

1 2 5 8 3 4 7 6 

1 4 7 6 5 8 3 2 

1 6 7 4 3 8 5 2

思路分析

题目的意思是说给你一个1、2、3......n的等差数列,以1为起点,按顺时针方向排列数字,每个数字只能出现一次并且相邻的两个数之和是一个素数,求其排列。

典型的一个DFS,即一个一个的往下判断,不符合时就往上退。用递归写时需要弄清楚进入递归和退出递归的关系以及退出递归后要把节点访问标记还原。这个题目还需要注意的地方就是答案可能有多个,因此,输出一个答案之后如何进行下一个不同答案的输出是需要斟酌的地方,

鉴于n最大值只到20,所以判断素数时可以通过打表然后直接查询来提高程序的运行速度。

代码如下

#include <iostream>

#include <cstdio>

#include <cstdlib>

#include <cmath>

#include <cstring>

#include <string>

#include <set>

#include <map>

#include <vector>

#include <list>

#include <stack>

#include <queue>

#include <algorithm>

using namespace std;

int n;

int a[25];

int visited[25];

bool IsPrime(int m)//判断素数

{

    for (int i=2;i<=sqrt(m);i++)

        if (m%i == 0)

          return 0;

    return 1;

}

void DFS(int j)

{

    int i;

    if (j == n && IsPrime(a[0]+a[j-1]))//必须满足首尾之和也为素数

    {

        cout<<a[0];

        for (int k=1;k<n;k++)

            cout<<" "<<a[k];

        cout<<endl;

    }//输出一个答案后会进行下面的判断(此时visited数组全为1,所以一直往上一个递归上退,并把原来访问的标记还原同时判断是否符合条件)

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

        if (visited[i] == 0 && IsPrime(a[j-1]+i))

        {

            a[j]=i;

            visited[i]=1;

            DFS(j+1);

            visited[i]=0;//退出上一个递归,并把不符合的节点“弹出”

        }

}

int main()

{

    int cas=1;

    while (scanf("%d",&n) != EOF)

    {

        a[0]=1;

        memset(visited,0,sizeof(visited));

        printf("Case %d:\n",cas++);

        DFS(1);

        cout<<endl;

    }

    return 0;

}

 

 

告别混乱代码!在Arduino IDE中管理多文件项目的5个必备技巧 本文分享了在Arduino IDE中管理多文件项目的5个必备技巧,帮助开发者告别混乱代码。通过代码分割和模块化设计,提升编译效率、降低内存占用,并实现功能解耦。重点介绍了头文件设计、CPP文件实现、调试技巧和工业级目录结构,让你的Arduino项目像乐高积木一样清晰易维护。 阅读详情

相关推荐

视频教程-SAP S4 HANA FICO COPA 获利能力分析-ERP

SAP S4 HANA FICO COPA 获利能力分析 从业超过8年的SA...

weixin_33456805的博客 1442

hdu 1016 Prime Ring Problem

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Description A ring is compose of n ci...

qq_45852004的博客 151

DPO(Direct Preference Optimization)实战全流程指南

《DPO实战全流程指南》摘要 本文提供了端到端的DPO(直接偏好优化)实战方案,包含数据准备、模型训练、评估部署全流程。核心内容包括: 数据构建:推荐UltraFeedback等高质量数据集,提供数据预处理代码 训练配置:基于HuggingFace TRL库的DPO实现,详解beta值等关键参数调优 工业优化:显存节省技巧(LoRA、梯度检查点)、领域自适应方法和在线学习架构 效果评估:量化对比显示DPO可降低86%有害回复率,提升24%用户满意度 常见问题:针对灾难性遗忘、过度安全化等问题给出解决方案 附

技术引领业务创新 1466

深搜经典题型 hdu1016 Prime Ring Problem

题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1016 Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K Problem Description A ring is compose of n circles as ...

weixin_43732535的博客 233

在已有win10系统下安装Ubuntu,最后出现执行‘grub-install/dev/nvme0n1p5‘失败的致命错误的解决方案

本人电脑型号戴尔灵越,两个SSD512G固态硬盘,c盘为系统盘. Ubuntu版本为20.04LTS,在官网下载https://ubuntu.com/download/desktop/thank-you?version=20.04.3&architecture=amd64 系统盘制作工具为Rufus-3.15http://rufus.ie/zh/ 安装过程网上很多,在这里就不赘述了. 其他安装过程都很顺利,直至安装最后出现这个 本来安装了到最后还以为成了,结果又不行...... 后.

XiaoChen_gugugu的博客 1万+

利用Solidworks2020将挖掘机装配体转换为URDF模型

利用Solidworks2020将挖掘机装配体转换为URDF模型一、下载sw_urdf_exporter插件 URDF(Universal Robot Description Format)——通用机器人描述格式,它是ROS里边使用的一种机器人的描述文件,包含的内容有:连杆、关节,运动学和动力学参数、可视化模型、碰撞检测模型等。 一、下载sw_urdf_exporter插件 ROS提供了SolidWorks转URDF的插件(下载链接)—sw2urdfSetup.exe,下载后点击安装,安装完成后就能在sol

weixin_48192326的博客 6100

hdu1016 Prime Ring Problem

hdu1016 Prime Ring Problem ...................... 1 #include <iostream> 2 #include <string.h> 3 #include <string> 4 #include <queue> 5 #i...

weixin_30820151的博客 94

HTML5期末大作业:关于家乡介绍的HTML网页设计——郑州美景HTML+CSS(5页) 学生DW家乡介绍网页设计作业成品 web课程设计网页规划与设计

HTML5期末大作业:我的家乡——郑州美景HTML+CSS(5页) 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 等网页设计题目, A+水平作业, 可满足大学生网页大作业网页设计需求, 喜

qq_365392777 1万+

HDOJ 1016 HDU 1016 Prime Ring Problem ACM 1016 IN HDU

题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1016题目描述:Prime Ring ProblemTime Limit: 4000/2000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6150Accepted...

weixin_30483697的博客 136

大模型-CLIP 详细介绍

最先进的计算机视觉系统通常被训练来预测一组预定义的对象类别。这种受限的监督形式限制了它们的通用性和可用性,因为要指定任何其他视觉概念,就需要额外的标注数据。比如,它们可以识别“猫”、“狗”、“汽车”等。但是,这种做法有一个明显的局限性:如果你想让系统识别一个新的类别,比如说“独角兽”,你就必须提供大量带有“独角兽”标签的图片来训练系统。这不仅耗时费力,而且限制了系统的灵活性和广泛适用性。直接从原始文本中学习关于图像的信息是一种很有前途的替代方案,因为它利用了更广泛的监督来源。

晓的博客 9710

每天一个优秀提示词学习收藏 - 文本去AI化(四)

宝子们,今天不藏私啦!我把这段时间四处搜罗、潜心钻研出来的文本去AI化Prompt 提示词大礼包双手奉上,这可都是能让你的 AI 创作水平原地起飞的干货!走过路过不要错过,赶紧码住,开启你的 AI 创作进阶之旅吧!

2445

HDU-1016 Prime Ring Problem(深搜)

HDU-1016 Prime Ring Problem(深搜)   A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle separately, and the sum of numbers in two adjacent circles should...

碳酸钙的01妖精的博客 209

【AI智能体】Codex + Obsidian 打造专业知识库实战详解

Codex + Obsidian 搭建并操作知识库实战详解

congge 3090

hdu1016Prime Ring Problem

http://acm.hdu.edu.cn/showproblem.php?pid=1016 Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 11874    Accepted Submissi

hnust_xiehonghao的专栏 720

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【HDU 1016】Prime Ring Problem(DFS、素数筛)

思路: 要求每两个相邻数之和都为素数,那么只要每次递归调用DFS时判断之前两个数之和是否为素数,另外注意因为是一个环,最后还要判断一下最后一个数和第一个数之和是否为素数。 程序开始时求出一个素数数组,只需求出50以内的素数即可,因为数据<20,最大的素数和为17+19=36。此处用的是素数筛法(什么是素数筛法?)求素数。 素数筛法概览: 把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉

Chen_yuazzy的博客 2260

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

hdu 1016 Prime Ring Problem

hdu  1016  Prime Ring Problem             题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 DFS 题目大意:输入一个数,将自然数1~此数排成一个圈,使每两个相邻的数相加之和为素数。 题目分析:标准DFS。 code; #include #include int p[40],vis[20],r

slicer的技术交流栈 709

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Prime Ring Problem HDU - 1016

素数环 #include<iostream> #include<cstring> #include<string> #include<algorithm> #include<cmath> using namespace std; int n; int a[30]; int v[30]; bool prime( int x ){ for( int i = 2 ; i <= sqrt(x) ; i++ ) if( x % i =

qq_43627860的博客 131

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

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Problem Description A ring is compose ...

weixin_34342207的博客 105

HDU-1016 Prime Ring Problem(DFS深搜+打表)

题目回顾(HDU-1016): Prime Ring Problem Problem Description A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle separately, and the sum of numbers in...

weixin_30339969的博客 110

HDU-1016-Prime Ring Problem

HDU-1016-Prime Ring Problem http://acm.hdu.edu.cn/showproblem.php?pid=1016 基本的DFS,先打个素数表即可 #include #include #include int prime[50]; int visit[30]; int num[30]; int n; void init() { int i,j;

菜鸟的程序人生 1152

HDU 1016 prime ring problem

A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle separately, and the sum of numbers in two adjacent circles should be a prime.  Note: the number

weixin_37483932的博客 323

HDU 1016 Prime Ring Problem

原题目链接HDU1016 分类 HDU 素数 DFS 题意 输入一个数n,把1到n的自然数放到一个环里,保证相邻的两个数的和是素数。 样例输入输出 Sample Input 6 8 Sample Output Case 1: 1 4 3 2 5 6 1 6 5 2 3 4 Case 2: 1 2 3 8 5 6 7 4 1 2 5 8 3 4 7 6 1 4 7 6 5 8 3 2 1...

GatesMa's blog 545
上一篇: HDU 2054 A == B ?
下一篇: HDU 2037 今年暑假不AC
Spectacules
博客等级 码龄12年 2粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值