(AcWing) 900. 整数划分 (计数DP)

news2024/11/25 2:36:20

一个正整数 n 可以表示成若干个正整数之和,形如:n=n1+n2+…+nk,其中 n1≥n2≥…≥nk,k≥1。

我们将这样的一种表示称为正整数 n 的一种划分。

现在给定一个正整数 n,请你求出 n 共有多少种不同的划分方法。

输入格式

共一行,包含一个整数 n。

输出格式

共一行,包含一个整数,表示总划分数量。

由于答案可能很大,输出结果请对 10^9+7 取模。

数据范围

1≤n≤1000

输入样例:

5

输出样例:

7

方法1:DP

 

#include <iostream>
#include <algorithm>

using namespace std;

const int N = 1010, mod = 1e9 + 7;

int n;
int f[N];

int main()
{
    cin >> n;

    f[0] = 1;
    //f[i]是从前i个物品中选取物品的 总体积<=背包总体积n的方法数
    //f[0]是体积为0的背包然后所有都不选是一种方案,
    //一个数都不选,总和是0,是一种方案f[i][0],前i个数中选,总和恰好等于0,只有一种都不选这种方案
    
    
    for (int i = 1; i <= n; i ++ )
        for (int j = i; j <= n; j ++ )
            f[j] = (f[j] + f[j - i]) % mod;
    //f[i][j] = f[i-1][j] + f[i][j-i]
    //          (不选i)    (选i)

    cout << f[n] << endl;

    return 0;
}

 方法2:

 

#include <iostream>
#include <algorithm>

using namespace std;

const int N = 1010, mod = 1e9 + 7;

int n;
int f[N][N];

int main()
{
    cin >> n;
    f[0][0] = 1;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=i;j++){
            f[i][j] = (f[i-1][j-1]+f[i-j][j])%mod;
        }
    }
    
    int res = 0;
    for(int i=1;i<=n;i++) res=(res+f[n][i])%mod;
    cout<<res<<endl;
}

 方法3:

#include <iostream>  
using namespace std;  
// Author: bjr  
//   
const int max = 1000;   
// sup是保存多项式的数组,sup[n]中的值代表xn的系数
// temp是临时多项式,保存相乘的临时中间情况  
int sup[max], temp[max];   
/*
程序始终只计算两个多项式之间的乘积,多个多项式的情况
先计算前两个的乘积,将结果作为第一个多项式,再与第三个相乘
依次类推,sup始终存放当前运算后的结果然后作为被乘多项式,
*/  
int main()  
{   
    int target;   //  目标重量, 比如上面的例子里就是10,要<max的值
    int i, j, k;  
   
    while(cin >> target)  
    {  
        for(i=0; i<=target; ++i)     
        {  
            sup[i] = 1;   
//初始化第一个多项式,也就是用1g砝码的多项式,
//注意如果题目没给1g的砝码那么就不能++i,而要加上砝码的质量
            temp[i] = 0;  
//将临时区清空,无论第一个多项式质量是几都要全部置零
        }  
        for(i=2; i<=target; ++i)   
// 生成后续的第i个多项式,此题中是2g,i从2开始。
//如果砝码的值不是规律增长,i可能需要取决于输入
        {  
   
            for(j=0; j<=target; ++j)   
// 遍历当前结果多项式的每一项(当前结果的第j项)与第i个多项式相乘,
                for(k=0; k+j<=target; k+=i) 
// 遍历第i个多项式的每一项,此处构造用小砝码组成大砝码的多项式
                {  
                    temp[j+k] += sup[j];  
//幂运算,注意理解
                }  
            for(j=0; j<=target; ++j)    
// 将临时的结果覆盖当前结果,同时把临时结果置零,为下次做准备
            {  
                sup[j] = temp[j];  
                temp[j] = 0;  
            }  
        }  
        cout << sup[target] << endl;  //输出结果
    }  
    return 0;  
}  

 转载于:普通母函数的原理及实现_太上绝情的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/913001.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

问题:fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached

问题&#xff1a;fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached 解决办法&#xff1a; 1. 新建一个文本文档并命名为XXX.json 2. 打开这个文本文档&#xff0c;复制下面内容保存 {"browsers": {"chrome": ["Mozill…

2023 年如何将您的应用提交到 App Store

您夜以继日地工作来创建您的梦想应用程序。最后&#xff0c;是时候向全世界宣布您的应用程序了。但不知道如何将您的应用提交到 App Store&#xff1f; 为您的商店获取现成的移动应用程序 将应用程序提交到 App Store 可能是一项复杂的任务。但在本指南的帮助下&#xff0c;事…

Monitor.Analog高温老化箱系统操作指南

高温老化室参数设置通常包括以下几个方面&#xff1a; 1.客户信息设置&#xff1a;每个柜子可能老化的产品不 同&#xff0c;客户信息也不一样&#xff0c;通过设置客户信息来标识。 2. 产品设置&#xff1a;根据老化物品的需求&#xff0c;设置老化房的产品类型。通常情况下&…

ElasticSearch常用方法

ElasticSearch:是一个储存、检索、数据分析引擎。 在互联网项目中我们经常会按一定的条件去索引我们指定的数据&#xff0c;但是在大量的数据中我们如果直接查询数据库效率是非常低的&#xff0c;ElasticSearch就可以很好的帮我们完成检索。 es封装了api提供给我我们直接操作…

建筑行业,工地管理有多简单?教你一招

智慧工地的出现&#xff0c;让我们能够实时洞察工地内的各个细节&#xff0c;无论是设备运转状态、工人位置&#xff0c;还是材料运输情况&#xff0c;一切都能通过传感器和互联技术汇聚到中央控制系统。这意味着管理人员可以更加高效地监督和调整工作流程&#xff0c;从而提升…

如何批量在图片名称前加相同的数字?

如何批量在图片名称前加相同的数字&#xff1f;如果平时喜欢拍摄美景&#xff0c;那么将拍摄的照片转移到电脑上保存是最好的选择&#xff0c;因为我们的手机或者相机的存储能力都是有限的&#xff0c;而电脑保存照片会更加的安全。因此时间久了我们的电脑中就会有很多的图片&a…

LAMP架构详解+构建LAMP平台之Discuz论坛

L A M P 一、LAMP架构简介1.1 LAMP架构的组成1.2 LAMP各组件的主要作用1.3 LAMP工作过程1.4 CGI和fastcgi 二、搭建Discuz论坛的思路三、编译安装Apache httpd3.1 前置准备3.2 移动apr包 apr-util包到安装目录中&#xff0c;并切换到 httpd-2.4.29目录中3.3 编译安装3.4 建立软…

网络安全(自学黑客)一文全解

目录 特别声明&#xff1a;&#xff08;文末附资料笔记工具&#xff09; 一、前言 二、定义 三、分类 1.白帽黑客&#xff08;White Hat Hacker&#xff09; 2.黑帽黑客&#xff08;Black Hat Hacker&#xff09; 3.灰帽黑客&#xff08;Gray Hat Hacker&#xff09; 四…

视频汇聚平台EasyCVR安防视频监控平台新增经纬度选取功能的详细介绍

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

成功的科技公司,往往都有这个能力

在数字化时代&#xff0c;数据中心扮演着关键的角色&#xff0c;它们是储存、管理和传输海量数据的核心枢纽。数据中心内的服务器、网络设备和存储设备的正常运行对环境条件要求严苛。温度的微小波动、湿度的变化或空气质量的下降都可能对设备性能和数据安全产生不利影响。 精密…

奔驰福音?梅赛德斯-奔驰技术升级,800V高压平台,200kW快速充电

据德国汽车媒体JESMB的报道&#xff0c;梅赛德斯-奔驰计划对EVA2平台进行升级&#xff0c;从目前的400V升级到800V的高压平台。这样的升级将使车主能够利用超过200kW的快速充电系统为车辆提供快速充电能力。 此次升级将涵盖梅赛德斯-奔驰的NMA平台&#xff0c;其中包括CLA、EQA…

java八股文面试[JVM]——JVM参数

参考&#xff1a;JVM学习笔记&#xff08;一&#xff09;_卷心菜不卷Iris的博客-CSDN博客 堆参数调优入门 jdk1.7&#xff1a; jdk1.8&#xff1a; 面试题&#xff1a;给定-Xms Xmx -Xmn 问 最大的eden区域是多少M。 常用JVM参数 怎么对jvm进行调优&#xff1f;通过参数配…

Centos 解决 XXX不在 sudoers 文件中。此事将被报告。的错误

本来想使用 sudo 拷贝一个文件&#xff0c;结果出现上面的问题&#xff01; 下面是解决方法&#xff1a; 首先登录root&#xff0c;然后执行下面的命令 vim /etc/sudoers 将你需要添加的用户带红色框线的地方&#xff0c;模仿root写一遍&#xff0c;然后保存&#xff01; …

系统架构设计师之缓存技术:Redis持久化的两种方式-RDB和AOF

系统架构设计师之缓存技术&#xff1a;Redis持久化的两种方式-RDB和AOF

基于swing的小区物业管理系统java jsp社区报修信息mysql源代码

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 基于swing的小区物业管理系统 系统有1权限&#xff1…

钓鱼圈子钓友渔获分享钓点小程序开发演示

针对钓鱼开发的一款小程序&#xff0c;可以让喜欢户外钓鱼的钓友之间互相分享钓点、渔获、钓鱼心得。 目前小程序支持的盈利功能有&#xff1a; 1、钓友可以发布渔获&#xff0c;设置展示钓点位置&#xff0c;位置查看可以收费。钓友想要查看这个钓点定位需要支付金币。钓点分…

部门来了个拿25k出来的00后测试卷王,老油条表示真干不过,已被...

内卷的来源 内卷最早的“出处”是几张名校学霸的图片。 大学生们刷爆朋友圈的几张“内卷”图片是这样的&#xff1a;有的人骑在自行车上看书&#xff0c;有的人宿舍床上铺满了一摞摞的书&#xff0c;有的人甚至边骑车边端着电脑写论文。这些图片最早在清华北大的学霸之间流传。…

【网络】数据链路层——MAC帧协议 | ARP协议

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《网络》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 来到数据链路层后&#xff0c;完整的数据被叫做数据帧&#xff0c;习惯上称之为MAC帧。 MAC帧协议 | A…

c++11 标准模板(STL)(std::basic_istringstream)(一)

定义于头文件 <sstream> template< class CharT, class Traits std::char_traits<CharT> > class basic_istringstream;(C11 前)template< class CharT, class Traits std::char_traits<CharT>, class Allocator std::allo…

gRPC简介: Google的高性能RPC框架

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…