P2404 自然数的拆分问题 题解

很典型的一道深搜,一路搜到底得到一种方案,本次方案排列完毕后,回溯搜索下一方案

奉上代码:
 

#include<iostream>
#include<cstdio>
using namespace std;
int n, p[11]={1}, cnt=1, m;
void print(int aa){//输出方案
    for(int i=1; i<aa; i++)
        cout<<p[i]<<"+";
    cout<<p[aa]<<endl;
}
void dfs(int a){//通过DFS得到排列, a计数
    for(int i=p[a-1]; i<=m; i++){//回溯后跳出分支
        if(i==n) continue;//防止最后一行输出n
        p[a]=i;
        m-=i;
        if(m==0) print(a);//m减完时,该方案已排列完毕,进行输出
        else dfs(a+1);//否则继续搜索
        m+=i;//回溯
    }
}
int main(){
    cin>>n;
    m=n;
    dfs(1);
    return 0;
}

相关推荐

  1. P2404 自然问题 题解

    2024-05-04 17:02:01       14 阅读
  2. P2404 自然问题

    2024-05-04 17:02:01       16 阅读
  3. P1106 删问题题解

    2024-05-04 17:02:01       29 阅读
  4. [力扣题解] 343. 整数

    2024-05-04 17:02:01       14 阅读
  5. P1643 完美 题解

    2024-05-04 17:02:01       33 阅读
  6. P1914 小书童——凯撒密码,学会字符串

    2024-05-04 17:02:01       16 阅读
  7. 洛谷-P7071 [CSP-J2020] 优秀

    2024-05-04 17:02:01       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-04 17:02:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-04 17:02:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-04 17:02:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-04 17:02:01       20 阅读

热门阅读

  1. android 14.0 SystemUI导航栏添加虚拟按键功能(三)

    2024-05-04 17:02:01       11 阅读
  2. 404 Not Found - GET https://registry.npmjs.org/fs-promises

    2024-05-04 17:02:01       13 阅读
  3. 大数据分析入门10分钟快速了解SQL

    2024-05-04 17:02:01       10 阅读
  4. PIXI入门系列之终章

    2024-05-04 17:02:01       13 阅读
  5. python编程功能选择建议处理方式

    2024-05-04 17:02:01       10 阅读
  6. D3CTF2024

    D3CTF2024

    2024-05-04 17:02:01      9 阅读