NYOJ 90 —— 求正整数n划分为若干个正整数的划分个数

整数划分                                              整数划分 题目描述 将正整数n表示成一系列正整数之和:n=n1+n2+?+nk,其中8>=n1≥n2≥?≥nk≥1,k≥1。正整数n的这种表示称为正整数n的划分。 例如正整数6有如下11种不同的划分: 6; 5+1; 4+2, 4+1+1; 3+3, 3+2... 阅读详情

整数划分

时间限制: 3000 ms  |  内存限制:65535 KB
描述
将正整数n表示成一系列正整数之和:n=n1+n2+…+nk, 
其中n1≥n2≥…≥nk≥1,k≥1。 
正整数n的这种表示称为正整数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。 
输入
第一行是测试数据的数目M(1<=M<=10)。以下每行均包含一个整数n(1<=n<=10)。
输出
输出每组测试数据有多少种分法。
样例输入
1
6
样例输出
11

下面转自博客:http://www.cnblogs.com/hoodlum1980/archive/2008/10/11/1308493.html

  所谓整数划分,是指把一个正整数n写成如下形式:

    n=m1+m2+...+mi; (其中mi为正整数,并且1 <= mi <= n),则:{m1,m2,...,mi}为n的一个划分。

  如果{m1,m2,...,mi}中的最大值不超过m,即max(m1,m2,...,mi)≤m,则称它属于n的一个m划分。这里我们记n的m划分的个数为f(n,m);

  例如:当n=4时,共有5个划分,{4},{3,1},{2,2},{2,1,1},{1,1,1,1};

  注意4=1+3 和 4=3+1被认为是同一个划分。

  该问题是求出n的所有划分个数,即f(n, n)。

  通用的递推公式如下:

      f(n, m)    =    1;                                        ( n = 1 or m = 1 )

                              f(n, n);                                 ( n < m )

                              1+ f(n, m - 1);                      ( n = m )

                              f(n - m, m) + f(n, m - 1);       ( n > m )

1)自顶向下实现的版本:

#include <cstdio>
#include <iostream>

using namespace std;

int f(int i, int j)
{
    if(i==1 || j==1)    return 1;
    if(i<j)    return f(i, i);
    if(i==j)    return f(i, i-1) + 1;
    return f(i, j-1) + f(i-j, j);    
}

int main ()
{
    int T, n;
    scanf("%d", &T);
    while(T--) {
        scanf("%d", &n);
        printf("%d\n", f(n, n));    
    }
        
    return 0;
}

 

2)自底向上实现的版本:

#include <cstdio>
#include <iostream>

using namespace std;

const int MAXN = 15;

int dp[MAXN][MAXN];

void init()
{
    for(int i=1; i<MAXN; i++) {
        for(int j=1; j<MAXN; j++) {
            if(j>i)    dp[i][j] = dp[i][i];
            else if(j == i)    dp[i][j] = dp[i][j-1] + 1;
            else    dp[i][j] = dp[i][j-1] + dp[i-j][j];
        }
    }
}

int main ()
{
    init();
    
    int T, n;
    scanf("%d", &T);
    while(T--) {
        scanf("%d", &n);
        printf("%d\n", dp[n][n]);
    }
    return 0;
}

 

整数的分划问题 递归程序 将正整数n表示成一系列正整数之和,n=n1+n2+...+nk,其中n1>n2>...>nk,k>=1。正整数n的不同划分个数称为n的划分数 (有2个程序) 立即下载

相关推荐

Apollo control模块横向控制原理及核心代码逐行解析

看完这篇文章,你会对apollo横向控制有一个整体的概念

weixin_39199083的博客 2万+

智能周报助手:基于ModelEngine的多Agent系统实践

在企业数字化办公场景中,结构化文本生成技术正逐渐成为提升效率的关键。通过多智能体协作架构,系统能够自动聚合Git、JIRA等数据源,结合NER模型和提示词工程实现信息智能提炼。ModelEngine平台的可视化编排显著降低了开发门槛,使接口调试时间减少80%。这类技术特别适合解决周报撰写中的信息碎片化、内容同质化等痛点,实测可将人均周报耗时从135分钟降至12分钟。典型应用还包括自动生成会议纪要、项目进度报告等场景,是企业流程自动化的重要实践方向。

weixin_30245867的博客 950

从工创赛实战到开源:一个高鲁棒性智能物流视觉系统的构建与优化

本文分享了从工创赛实战中构建高鲁棒性智能物流视觉系统的完整经验。针对赛场复杂光线环境,详细阐述了摄像头选型、基于CLAHE和形态学梯度的抗干扰色环识别算法、卡尔曼滤波状态估计以及多线程串口通讯与任务调度等核心优化策略,旨在打造一个稳定可靠的视觉系统,并已将相关代码开源。

weixin_29046035的博客 315

noi 7219:复杂的整数划分问题

7219:复杂的整数划分问题 查看 提交 统计 提问 总时间限制:200ms内存限制:65536kB描述 将正整数n表示成一系列正整数之和,n=n1+n2+…+nk,其中n1>=n2>=…>=nk>=1,k>=1。正整数n的这种表示称为正整数n的划分。 输入标准的输入包含若干组测试数据。每组测试数...

weixin_30709809的博客 221

合规批量下载美国上市公司年报数据的一些经验和总结

本文总结了使用Python脚本批量下载和处理美国上市公司SEC报告的技术经验。通过CIK代码查询SEC EDGAR系统,生成特定日期和报告类型的URL,并使用Selenium和Requests库下载报告内容。流程包括数据获取、文件下载、Excel处理和多线程优化,确保高效处理几百条数据。关键技术挑战包括SEC访问限制、动态网页内容和数据完整性,解决方案包括设置合规的User-Agent、使用Selenium模拟浏览器行为以及错误日志记录。最佳实践包括模块化设计、多线程优化和严格遵守SEC合规性。该自动化流程

jyfool的博客 1634

OpencvSharp学习笔记(一):图片的打开,保存灰度化,保存

近来萌生了学习OpenCv的想法,经过度娘得知老夫会的C#不能直接用OpenCv,只能用他的儿子OpenCvSharp与EmguCV,奈何奈何,这两玩意的资料少的出奇,只能慢慢的摸索了,EmguCV先不说,老夫找到了牛批的资料,先摸索OpencvSharp吧 首先打开VS通过Nuget安装 选择版本后点击安装就OK了. 安装完成后,引用里面就有以下的玩意儿了… 废话不多说了,在写程序前先 using OpenCvSharp 图片打开,灰度化,保存代码如下: static void Main(strin

猥琐de专注 7185

使一个正整数分解为若干整数,使其各个数的乘积最大

面试碰到的一道题,这道题的原型是: Parliament Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12324   Accepted: 5134 Description New convocation of The Fool Land's Parliam

zzqworkspace的博客 3386

基于Python的上市公司年报PDF文本抓取与财务风险分析系统

随着大数据时代的到来,金融数据分析已成为投资决策和风险管理的重要工具。上市公司年报包含了丰富的财务信息和经营数据,通过对这些数据的提取和分析,可以评估公司的财务状况和潜在风险。本文将详细介绍如何使用Python构建一个完整的上市公司年报文本抓取与财务风险分析系统,涵盖PDF文本提取、数据清洗、财务指标计算和风险分析等全流程。

2201_76125261的博客 311

NYOJ90 整数划分 【深搜】

整数划分 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,  其中n1≥n2≥…≥nk≥1,k≥1。  正整数n的这种表示称为正整数n的划分。求正整数n的不  同划分个数。  例如正整数6有如下11种不同的划分:  6;  5+1;  4+2,4+1+1;  3+3,3+2+1,

长风的专栏 1473

Tiktok/抖音旋转验证码

主要记录一下旋转验证码的逆向思路

记录一些web逆向的过程 5964

用一组可复现实验讲清 ABAP 内表 Standard / Sorted / Hashed 的性能差异

摘要(150字): SAP项目中性能问题常源于ABAP内表选型不当。标准表(STANDARD TABLE)写入快但查找慢(线性扫描),适合遍历场景;排序表(SORTED TABLE)保持有序,支持二分查找,适合范围查询;哈希表(HASHED TABLE)基于唯一键实现常数级查找,适合高频精确匹配。实验表明:标准表+BINARY SEARCH需预排序,成本可能高于直接使用排序表;哈希表在键匹配时性能最优。Gateway和RAP场景中,内表选型直接影响接口响应,建议根据读写负载(追加/遍历/精确查找)选择对应类

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 200

nyoj 90 整数划分

点击打开链接 整数划分 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,  其中n1≥n2≥…≥nk≥1,k≥1。  正整数n的这种表示称为正整数n的划分。求正整数n的不  同划分个数。  例如正整数6有如下11种不同的划分:  6;  5+1;  4+2,

云淡风清 820

Claude Code 常见安装失败问题与解决办法

摘要: Claude Code安装失败通常与环境、网络和权限问题有关,而非软件本身。主要误区包括:命令未识别(需检查PATH和终端重启)、网络连接失败(终端代理配置)、权限不足(系统安全限制)及账号认证问题。首次使用应避免复杂任务,建议从基础功能测试开始。快速自检可按终端重启→命令识别→网络→代理→权限→账号状态的顺序排查。理顺终端、网络和权限后,Claude Code运行将更稳定。 (150字)

sg_knight的专栏 6692

nyoj 90 整数划分【dp划分数】

整数划分 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,  其中n1≥n2≥…≥nk≥1,k≥1。  正整数n的这种表示称为正整数n的划分。求正整数n的不  同划分个数。  例如正整数6有如下11种不同的划分:  6;  5+1;  4+2,4+1+1;  3+3,3

希望的专栏 1905

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

NYOJ 176 整数划分(二)

整数划分(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 把一个正整数m分成n个正整数的和,有多少种分法? 例:把5分成3个正正数的和,有两种分法: 1 1 3 1 2 2 输入第一行是一个整数T表示共有T组测试数据(T 每组测试数据都是两个正整数m,n,其中(1 输出输出拆分的方法的数

小梁先生 670

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

NYOJ 90 整数划分(递推||dp)

整数划分 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,  其中n1≥n2≥…≥nk≥1,k≥1。  正整数n的这种表示称为正整数n的划分。求正整数n的不  同划分个数。  例如正整数6有如下11种不同的划分:  6;  5+1;  4+2,4+1+1;  3+3,3

gyr 478

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

NYOJ 90 整数划分

题目连接题目描述 将正整数n表示成一系列正整数之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整数n的这种表示称为正整数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+

千里孤坟'blog 270

nyoj90整数划分 搜索DFS 动态规划

整数划分时间限制:3000 ms  |  内存限制:65535 KB难度:3描述将正整数n表示成一系列正整数之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整数n的这种表示称为正整数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+...

popcjz的博客 1647

nyoj90 整数划分

整数划分 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,  其中n1≥n2≥…≥nk≥1,k≥1。  正整数n的这种表示称为正整数n的划分。求正整数n的不  同划分个数。  例如正整数6有如下11种不同的划分:  6;  5+1;  4+2,4+1+1;  3+3,3

明天会更好 467

整数划分 NYOJ 90

描述 将正整数n表示成一系列正整数之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整数n的这种表示称为正整数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+

坤哥的专栏 1249

NYOJ90整数划分

整数划分 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,  其中n1≥n2≥…≥nk≥1,k≥1。  正整数n的这种表示称为正整数n的划分。求正整数n的不  同划分个数。  例如正整数6有如下11种不同的划分:  6;  5+1;  4+2,4+1+1;  3+3,3

qq_35562816的博客 687

NYOJ90. 整数划分(计数DP)

整数划分 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,  其中n1≥n2≥…≥nk≥1,k≥1。  正整数n的这种表示称为正整数n的划分。求正整数n的不同划分个数。  例如正整数6有如下11种不同的划分:  6;  5+1;  4+2,4+1+1;  3+3,3+2+

cr496352127的博客 395

nyoj90

    整数划分 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,  其中n1≥n2≥…≥nk≥1,k≥1。  正整数n的这种表示称为正整数n的划分。求正整数n的不  同划分个数。  例如正整数6有如下11种不同的划分:  6;  5+1;  4+2,4+1+1;  3+3,3+2+1,3+1+1...

Mr.zhou 237
上一篇: NYOJ 746 - 正整数n划分为m段,求m段的最大乘积 【区间DP】
下一篇: NYOJ 571 —— 各种划分数
AcIsFun
博客等级 码龄10年 1粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值