博客
关于我
集训笔记---dfs(HDUOJ NO.1016 Prime Ring Problem )
阅读量:614 次
发布时间:2019-03-13

本文共 944 字,大约阅读时间需要 3 分钟。

这里提供一个针对素数环问题的深度优先搜索代码的解释和优化版本。该代码用于验证是否存在长度为n的素数环,具体来说,是否存在一个数环,每个环节形成的数均为素数。

这个代码基于深度优先搜索(DFS)算法,通过对每个数位逐步尝试不同的数字组合,来构造并验证素数环。以下是优化后的代码解释:

  • 包含头文件:包括了必要的标准库文件,如<iostream><algorithm><string.h><cmath>。这些文件提供了基本的输入输出操作、算法和数学功能。

  • 代码开始部分:

    • 首先-defined一个数组visit用于记录每个数字是否已经被访问过。
    • 定义了一个数组num,用于存储当前所构造的最大数的每一位数字。例如,num[1]表示第一位数字;num[2]表示第二位数字,依此类推。这个数组的索引实际上也是当前所在的数位。
  • 素数判断函数prime

    • 判断一个数字是否为素数。
    • 对于非素数的反例,例如n=1、n=2中特殊情况的判断。
    • 对偶数直接排除非素数。
    • 对3及以上素数进行循环检查,直到平方根为止。
    • 只要有一个因数,新的数字即不是素数。
  • 深度优先搜索函数dfs

    • 作为递归函数,dfs接收一个参数step,表示当前所在的数位。
    • 当前数位已经填充完毕(step > n),需要检查是否满足素数环的条件。
    • 逐个枚举从2到n的所有数字作为当前数位的可能值。
    • 对每个可能的数字i,检查是否满足素数环的条件,即当前数字和前一个数字之和是素数,并且i未被访问过。
    • 如果满足条件,则标记i为已访问,调用递归函数继续填充下一个数位。
    • 递归结束后,恢复i的标记,避免干扰后续的选择。
  • 主函数main()

    • 读取输入,初始化变量和数组。c用于打印输入的案例编号。
    • 读取每个测试用例n。
    • 初始化访问数组visit,并设置初始值,例如num[1]=1.
    • 调用dfs(2)开始递归搜索,当前数位从第二位开始填充。
    • 输出每个案例的结果。
  • 该代码基于深度优先搜索算法,通过对数位的逐步构造和素数环的验证,检查是否满足素数的条件。这种方法虽然效率较低,但对于较小的数值n来说,能够有效地找到可能存在的素数环。

    通过这种编写方式,不仅让代码更加可读,还增加了对代码功能和API的理解,使得其他开发者更容易地使用和修改代码。

    转载地址:http://tvhaz.baihongyu.com/

    你可能感兴趣的文章
    00010.02最基础客户信息管理软件(意义类的小项目,练习基础,不涉及数据库)
    查看>>
    00013.05 字符串比较
    查看>>
    javaEE003.03 jQuery:基本选择器、层次选择器
    查看>>
    IEDA全局搜索快捷键 Ctrl+shift+F无效的原因、 eclipse:Ctrl + h 进行全局搜索
    查看>>
    LeetCode: 138. 复制带随机指针的链表(中等)[DFS, 迭代]
    查看>>
    微信小程序 数据列表点击会有提示
    查看>>
    Effective Java 读书笔记
    查看>>
    JVM 学习笔记十三、垃圾回收概述
    查看>>
    Rsync + Intofy 数据实时同步方案
    查看>>
    No.3.1_11 JavaSE入门 P10 【常用API】数组排序和Arrays工具类、包装类、Date
    查看>>
    Shiro RememberMe 1.2.4 反序列化漏洞(Shiro-550, CVE-2016-4437)复现
    查看>>
    tomcat启动时遇到Error starting child和404时
    查看>>
    使用jieba时的bug
    查看>>
    SpringBoot使用@Email报错误
    查看>>
    SpringBoot之国际化
    查看>>
    Maven 输入依赖名字不提示
    查看>>
    Rabbitmq的内存磁盘监控
    查看>>
    访问servlet时弹出文件下载框解决方法
    查看>>
    IDEA中同时push项目到gitee和github
    查看>>
    Fast Matrix Calculation HDU-4965 矩阵快速幂
    查看>>