当前位置: 首页 > ds >正文

D. 例题3.2.2 整数划分问题

题目描述

将正整数n表示成一系列正整数之和:n=n_1+n_2+...+n_kn=n1​+n2​+...+nk​,其中8\geq n_1\geq n_2\geq ...\geq n_k\geq 18≥n1​≥n2​≥...≥nk​≥1,k\geq1k≥1。正整数n的这种表示称为正整数n的划分。

例如正整数6有如下11种不同的划分:

6;5+1;4+2,  4+1+1;3+3,  3+2+1,  3+1+1+1;2+2+2,2+2+1+1,2+1+1+1+1;1+1+1+1+1+1。

Copy

输入格式

一个正整数 n

保证 n\leq 8n≤8

输出格式

一个正整数 m,表示n可以被分成m种

input


6

Copy

output


11

Copy

数据规模与约定

时间限制:1s

空间限制:256MB

这道题其实就是根据这个n然后把已知的所有条件都求出来就即可。

整数划分问题将正整数n表示成一系列正整数之和,n=n1+n2+……+nk n1>=n2>=………>=nk>=1;k>=1正整数n的划分数,记为p(n)。例如正整数6有如下11种不同的划分,所以p(6)=11在最大加数n1不大于m的划分个数记作q(n,m)。 q(n,m)=1, 当n=1,m=1;q(n,m)=q(n,n) 当n<m; q(n,m)=1+q(n,n-1) 当n==m;q(n,m)=q(n,m-1)+q(n-m,m) 当n>m


#include<bits/stdc++.h>
using namespace std;
int fun(int n, int m)
{
    if(n==1||m==1)return 1;
    else if(n<m)return fun(n,n);
    else if(n==m)return (1+fun(n,m-1));
    else return(fun(n,m-1)+fun(n-m,m));
}
int main()
{
//    freopen("decompose.in","r",stdin);
//    freopen("decompose.out","w",stdout);
    int n;
    cin>>n; 
    cout<<fun(n,n);
    return 0;
}
 

http://www.xdnf.cn/news/3819.html

相关文章:

  • 二种MVCC对比分析
  • 学习黑客风险Risk
  • iOS启动优化:从原理到实践
  • 2025年渗透测试面试题总结-拷打题库35(题目+回答)
  • 【C++】:C++17新特性
  • Vivado FPGA 开发 | 创建工程 / 仿真 / 烧录
  • 2845. 统计趣味子数组的数目
  • 【LLaMA-Factory实战】Web UI快速上手:可视化大模型微调全流程
  • The Sims 4 模拟人生 4 [DLC 解锁] [Steam Epic EA] [Windows SteamOS]
  • 《操作系统真象还原》第十二章(2)——进一步完善内核
  • 影刀RPA中新增自己的自定义指令
  • UDP网络编程
  • Xilinx FPGA | 管脚约束 / 时序约束 / 问题解析
  • 安卓基础(悬浮窗)
  • Java中深拷贝与浅拷贝的深入探讨
  • C++类_虚基类
  • IDEA快速上手Maven项目:模板选择 + 多模块拆分
  • Spring Boot 微服务打包为 Docker 镜像并部署到镜像仓库实战案例
  • 合成复用原则(CRP)
  • IDEA回滚代码操作
  • Windows下调试WebRTC源码
  • BOSS的收入 - 华为OD机试(A卷,C++题解)
  • 昇腾的昇思MindSpore是什么?跟TensorFlow/PyTorch 等第三方框架有什么区别和联系?【浅谈版】
  • c++ 二级指针 vs 指针引用
  • 小土堆pytorch数据加载概念以及实战
  • 【Tauri2】37——后端处理invoke
  • SVM实战:从理论到鸢尾花数据集的分类可视化
  • skynet中的client.socket库函数详解
  • WebRTC 服务器之Janus架构分析
  • 大模型开发的环节