Eric_David_King 2024-04-05 13:32 采纳率: 20%
浏览 7

用DFS方法解决不定项列举问题

给大家出一道题。
请问,一个数能拆成几个质数的和呢?
假设有一个数n(-10^6<n<10^6),能被拆成i个(正)质数,分别为A1,A2,A3,……,An,请输出所有可能的a1,2,a3……序列,并输出i的值,如果一个数不能拆成几个(正)质数的和,请输出“none”。
请大家在**讨论区**实现代码。
后续我会在洛谷上出一下这道题,大家可以做一下。
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-04-05 16:12
    关注

    【相关推荐】



    • 你可以看下这个问题的回答https://ask.csdn.net/questions/7749762
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:用DFS求连通块 深度优先搜索算法 油田问题
    • 您还可以看一下 孙玖祥老师的图解数据结构与算法课程中的 DFS思想动画演示小节, 巩固相关知识点
    • 除此之外, 这篇博客: DFS算法解决数独问题中的 算法总结 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

        不用设置那么麻烦的数据结构,直接利用dfs算法(前提是对该算法很熟悉并能灵活运用。)算法本身还要利用一个判断可能值是否合法的函数。Judeg函数中,对九宫格的判断不用分成九种情况讨论,要观察空格坐标的特点,直接分析出公式,可以提高时间复杂度,减少代码冗余度。
        同时对dfs进行递归调用时,dfs((x + (y + 1) / 10), (y + 1) > 9 ? 1 : (y + 1));这里的参数设置就很巧妙,利用求模,直接用一个式子就对二维数组进行了遍历,非常的方便。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 4月5日