Openjudge7219 复杂的整数划分问题(dp)

复杂整数划分问题(动态规划) 本文认为整数划分问题的关键在于dp[i][j]的理解上,透彻理解它的含义,能帮助我们轻松的解决问题。 (1)将数字i分成j个整数; (2)数字i的划分中可能出现的最大数为j。 一、题目简述 描述 将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。 正整数n 的这种表示称为正整数n 的划分。 输入 ... 阅读详情

总时间限制: 
200ms 
内存限制: 
65536kB
描述

将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。
正整数n 的这种表示称为正整数n 的划分。

输入
标准的输入包含若干组测试数据。每组测试数据是一行输入数据,包括两个整数N 和 K。 
(0 < N <= 50, 0 < K <= N)
输出
对于每组测试数据,输出以下三行数据:
第一行: N划分成K个正整数之和的划分数目
第二行: N划分成若干个不同正整数之和的划分数目
第三行: N划分成若干个奇正整数之和的划分数目
样例输入
5 2
样例输出
2
3
3
提示
第一行: 4+1, 3+2,
第二行: 5,4+1,3+2
第三行: 5,1+1+3, 1+1+1+1+1+1

非常全的各种整数划分总结:点击打开链接


AC代码:


#include "iostream"
#include "cstdio"
#include "cstring"
#include "algorithm"
using namespace std;
const int maxn = 60;
int main(int argc, char const *argv[])
{
	int n, k;
	while(cin >> n >> k) {
		int num2[maxn][maxn] = {0}, num1[maxn][maxn] = {0}, f[maxn][maxn] = {0}, g[maxn][maxn] = {0};
		for(int i = 1; i <= n; ++i)
			for(int j = 1; j <= n; ++j) {
				if(i < j) {
					num1[i][j] = num1[i][i];
					num2[i][j] = 0;
				}
				else if(i == j) {
					num1[i][j] = 1 + num1[i][j - 1];
					num2[i][j] = 1;
				}
				else {
					num1[i][j] = num1[i - j][j - 1] + num1[i][j - 1];
					num2[i][j] = num2[i - 1][j - 1] + num2[i - j][j];
				}
			}
		f[0][0] = 1, g[0][0] = 1;
		for(int i = 1; i <= n; ++i)
			for(int j = 1; j <= i; ++j) {
				g[i][j] = f[i - j][j];
				f[i][j] = g[i - j][j] + f[i - 1][j - 1];
			}
		int res = 0;
		for(int i = 0; i <= n; ++i)
			res += f[n][i];
		cout << num2[n][k] << endl << num1[n][n] << endl << res << endl;
	}
	return 0;
}


动态规划 001:复杂的整数划分问题 001:复杂的整数划分问题 总时间限制: 200ms 内存限制: 65536kB 描述 将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。 正整数n 的这种表示称为正整数n 的划分。 输入 标准的输入包含若干组测试数据。每组测试数据是一行输入数据,包括两个整数N 和 K。 (0 < N <=... 阅读详情

相关推荐

整数划分问题(分治算法经典)

题目描述: 整数划分问题是将一个正整数n拆成一组数连加并等于n的形式,且这组数中的最大加数不大于n。 即:n=n1+n2+…+nk; n1>=n2>=n3…>=nk 如整数的6划分为: 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共11种。 补充:正整数的这种操作称为正整数的划分,正整数的不同

01解题者~博客 1万+

整数分化问题

整数分化问题 问题描述:将正整数n表示成一系列正整数之和,n=n1+n2+…+nk,其中,n1>n2>…>nk,k>=1。正整数n的不同划分个数为s的划分数,记为p(s)。例如,6和11种不同的划分,所以p(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。 思路:  一般,经过分析,我们解决这个问题会先选定一个较大的标准,剩下的数再进行划分,所以,在确定递归条件时,除

MD_DX的博客 2239

美团外卖mtgsig 1.2逆向工程:从补环境到签名生成全解析

本文深入解析了美团外卖mtgsig 1.2签名算法的逆向工程全流程。从环境检测原理与补环境实战入手,详细拆解了签名JSON中每个关键字段的生成逻辑,并重点剖析了核心签名a2的生成步骤,涉及设备指纹、MD5、AES加密等关键技术。最后提供了构建签名生成器的实践思路与常见坑点,为理解复杂风控体系提供了完整的技术视角。

weixin_29324401的博客 1757

算法分析-整数划分

整数划分问题 将一个正整数n表示成一系列正整数之和:   n=n1+n2+...+nk (n1>=n2>=nk>=1,k>=1) 正整数n的一个这种表示称为正整数n的一个划分,记为p(n)。 在正整数n的所有不同划分中,将最大数n1不大于m的划分个数记为q(n,m),于是有以下的递归关系: (1) q(n,1)=1,n>=1 (2) q(n,m)=q(n,...

weixin_30398227的博客 225

【遥感数字图像处理(朱文泉)】第四章 变换域处理方法

变换域的处理方法

甜子yu的博客 4311

从理论到实践:用CST微波工作室完成单站雷达RCS仿真的完整指南

本文提供了一份利用CST微波工作室进行单站雷达RCS仿真的完整实践指南。文章深入剖析了从求解器选择(重点推荐积分方程法)、模型与材料设置、平面波激励定义到后处理分析的完整逻辑链条,旨在帮助工程师不仅完成仿真,更能理解其背后的物理原理与工程考量,从而高效、精准地评估目标的电磁散射特性。

weixin_29256771的博客 180

递归方法

递归方法用数学式子可定义为:     可以发现,递归需满足3个条件:1,自身调用自身 2,递归出口 3.参数收敛 ,从而达到缩小问题规模的目的,利用递归方法编写的程序短小易懂(有递归工作栈机制支撑)。 下面通过例子说明: 整数划分问题     题目:将整数n表示成一系列正整数之和:n=n1+n2+......+nk,其中n1>=n2>=........>=nk,求划分的个数。    

MasterQKK 601

毕业设计:丹麦电力电价预测预测未来24小时的电价pytorch+lstm+历史特征和价格+时间序列 电价预测模型资源 完整代码数据可直接运行

毕业设计:丹麦电力电价预测预测未来24小时的电价pytorch+lstm+历史特征和价格+时间序列 电价预测模型资源 完整代码数据可直接运行

356

整数划分问题

将正整数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。 在本例中,如果设p(n)为正整数n的划分数,则难以找到递归关系,因此考虑增加一个自变量:将最大加数n1不大于m的划分个数记作q(n,m)。可以建立q(n,

weixin_44469806的博客 1012

30天入门 SAP BTP 开发系列之八:动手在 SAP BTP 上开发第一个 ABAP 透明表

ABAP Cloud 环境下创建透明表的方法与数据迁移实践 本文介绍了在 SAP BTP ABAP 环境中创建透明表并迁移数据的完整流程。与传统的 SE11 事务码不同,ABAP Cloud 需通过 ABAP Development Tool 创建数据库表,使用代码定义表结构。作者详细演示了如何: 在开发包中创建名为 Z优快云_TRAVEL 的透明表 使用 ABAP 代码定义表字段和约束 通过 ABAP 类实现数据从标准表/DMO/TRAVEL 到新建表的迁移 验证数据迁移结果 文中还提供了相关技术概念的

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

五万字解析【ROOT 入门指南】

本文是cern官方root入门指南的初步翻译版,还在进一步校对中....

荷塘阅色 208

OpenJudge 7219 复杂的整数划分问题(dp)

描述 将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。 正整数n 的这种表示称为正整数n 的划分。 输入 标准的输入包含若干组测试数据。每组测试数据是一行输入数据,包括两个整数N 和 K。 (0 < N <= 50, 0 < K <= N) 输出 对于每组测试数据,输出以下三行数据: 第一行: N划分成K个正整数之和的划分数目 第二行: N划分成若干个不同正整数之和的划分数目 第三行:

蒟蒻本蒻的博客 6225

手把手教你学Simulink——基于自动驾驶辅助系统的场景实例:车道保持辅助系统(LKA)的仿真与实现

本文通过Simulink实例讲解车道保持辅助系统(LKA)的实现方法。首先介绍LKA从预警到主动控制的技术演进,阐述其系统架构、核心组件和工作原理。重点演示基于自行车模型的车辆横向动力学建模过程,以及使用线性二次调节器(LQR)设计横向控制器的详细步骤。教程包含四个仿真场景测试,分析关键指标如控制精度、舒适性和响应性。最后探讨LKA技术的发展方向,强调人机协同的安全理念。该实例为自动驾驶辅助系统开发提供了完整的Simulink实践方案。

MHD0815的博客 182

OpenJudge_P7219 复杂的整数划分问题(DP)

总时间限制: 200ms 内存限制: 65536kB 描述 将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。 正整数n 的这种表示称为正整数n 的划分。输入 标准的输入包含若干组测试数据。每组测试数据是一行输入数据,包括两个整数N 和 K。 (0 < N <= 50, 0 < K <= N) 输出 对于每组测试数据,

BeiYu 1353

【拼多多笔试题汇总】2024-03-24-拼多多春招笔试题

A 小镇上有个奇特的游戏。游戏开始时,A 先生准备了一排 nnn 个物品。K 小姐和卢小姐则轮流进行操作。首先,K 小姐可以选择移除至多 xxx 个物品。接着,卢小姐也可以选择移除剩余物品中的至多 yyy 个。游戏的目标是,K 小姐想尽量让剩余物品的价值之和最大化,而卢小姐则想将剩余物品的价值之和最小化。假设两人都采取最优策略,请问最后剩余物品的价值之和是多少?第一行包含五个正整数 n,m,k,x,yn, m, k, x, yn,m,k,x,y,分别表示物品的总数、K 小姐最多可移除的物品数、卢小姐最多可移

春秋招笔试突围 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

哈理工OJ 2004 整数划分(整数划分问题)

Description 将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,其中n1>=n2>=…>=nk>=1。正整数n的这种表示称为正整数n的划分。求正整数n的不同划分个数。例如,正整数6有如下11种不同的划分:6: 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. Inp

linlinsong—ACM界蒟水! 1128

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

整数拆分问题的四种解法

整数划分问题是算法中的一个经典命题之一 所谓整数划分,是指把一个正整数n写成如下形式: n=m1+m2+m3+....+mi;(其中mi为正整数,并且1&lt;=mi&lt;=n),则{m1,m2,m3,....,mi}为n的一个划分。 如果{m1,m2,m3,....,mi}中的最大值不超过m,即max{m1,m2,m3,....,mi} &lt;= m,则称它属于n的一个m划分。这...

NEWPLAN的专栏 13万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

整数划分总结

博客原地址:https://blog.youkuaiyun.com/dacc123/article/details/50664738整数划分问题:笼统上说就是将一个整数划分成若干个整数之和的方案数。整数划分有很多不同的问法,也有比较隐晦的问法。比如n个苹果放到m个盘子里,比如n个砖块堆成m个层阶梯。关于整数划分,大概有以下这么多扩展的问题:1、整数n划分成若干整数之和的方案数;2、整数n划分成k个整数之和的方...

Charles_Zaqdt的博客 5940

整数划分问题-解法汇总(暂有DP-递归)

整数划分问题是一个锻炼组合数学,递归以及动态规划很好的例子,虽然问题看似简单,但是其中玄机万千,有人转化成为背包问题,有人用生成函数解,有人以此作为企业面试题目,可见这种问题的认可度还是很高的。 整数划分问题可以出现很多变种问题:   1. 将n划分成若干正整数之和的划分数。(原题)   2. 将n划分成k个正整数之和的划分数。   3. 将n划分成最大数不超过k的划分数。  ...

disuo8001的博客 498

c语言整数划分acm,POJ 7219 复杂的整数划分问题 【dp】【北大ACM/ICPC竞赛训练】

非常难想的题,感觉如果是第一次做的话很难做出来了。这里问的其实有三个问题,而且相对独立,所以要分开求解。1.整数n拆成k个正整数dp[i][j]代表整数 i 拆成k个正整数有多少拆法,那转移方程是dp[i][j] = dp[i-j][j] + dp[i-1][j-1]这一点我觉得基本上是想不到的。我们转移的时候把所有用j个数组成i的方案分成两类,一类是这j个数里面有至少一个1;另一类是这j个数里面...

weixin_42361018的博客 355

OJ 7219 复杂的整数划分各变形题总结__动态规划

描述将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。 正整数n 的这种表示称为正整数n 的划分。输入标准的输入包含若干组测试数据。每组测试数据是一行输入数据,包括两个整数N 和 K。 (0 < N <= 50, 0 < K <= N)输出对于每组测试数据,输出以下三行数据: 第一行: N划分成K个正整数之和的划分数目 第二

不若乘风来 3504

NOI 2.7 7219:复杂的整数划分问题

题目来源:http://noi.openjudge.cn/ch0207/7219/7219:复杂的整数划分问题总时间限制: 200ms  内存限制: 65536kB描述将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1&gt;=n2&gt;=…&gt;=nk&gt;=1 ,k&gt;=1 。正整数n 的这种表示称为正整数n 的划分。输入标准的输入包含若干组测试数据。每组测试数...

da_kao_la的博客 645

整数划分问题(详解 n > m 情况)

整数划分问题(详解 n > m 情况)

若尘的博客 4561
上一篇: Openjudge187 炮兵阵地(dp)
下一篇: Openjudge4980 拯救行动(bfs)
GKHack
博客等级 码龄11年 48粉丝 291原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值