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

ENVI新手避坑指南:手把手教你搞定遥感影像的坐标系转换(附ArcGIS对比)

本文详细解析ENVI与ArcGIS在遥感影像坐标系转换中的关键差异与实战技巧,特别针对新手常见问题提供避坑指南。从基础概念到高级操作,涵盖定义投影、UTM转换等核心步骤,并对比两种软件的处理精度与效率,帮助用户高效完成遥感影像处理任务。

weixin_42531925的博客 379

算法分析-整数划分

整数划分问题 将一个正整数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

从大疆智图到Cesium:3D Tiles模型加载与Web三维场景构建实战

本文详细介绍了如何利用大疆智图生成3D Tiles数据,并通过Cesium在Web端实现高效加载与三维场景构建。从大疆智图参数设置到Cesium环境配置,再到3D Tiles性能调优与高级功能实现,提供了一套完整的实战指南,帮助开发者快速掌握3D Tiles模型加载与Web三维场景构建技术。

weixin_30520015的博客 1285

gdb对dwarf调试信息的解析和使用

gdb的对dwarf的调试信息的解析到使用的过程分析

JS072110的专栏 9568

递归方法

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

MasterQKK 601

用Python和NumPy搞定复合材料层合板ABD矩阵计算(附完整代码与避坑指南)

本文详细介绍了如何使用Python和NumPy高效计算复合材料层合板的ABD刚度矩阵,包括单层板刚度计算、偏轴转换和层合板刚度集成。通过完整的代码示例和工程实践技巧,帮助工程师快速构建定制化分析工具,解决航空航天、汽车制造等领域的复合材料力学性能分析问题。特别提供了避坑指南和性能优化策略,确保计算结果的准确性和效率。

weixin_30752699的博客 278

整数划分问题

将正整数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

基于LangGraph的智能报告生成平台项目分析

不知道你是否知道或者了解OpenAI and Gemini Deep Research。他们是一种能够根据输入问题进行规划、结合网络搜索获取信息并最终呈现结果的研究工具或技术。那这样research是如何实现的呢?最近刚好看到一个实现类似功能的开源项目: open_deep_search。本文将基于该项目进行代码层面剖析。

u011160113的博客 923

windows exe爬虫:exe抓包

在不知情所拦截应用使用的流量时,所以建议用Wireshark。本文利用python代码,实现自动拦截,写入pcap包,并用代码分析流量的协议。这样会在本地目录下生成capture_inbound.pcap,可以用wireshark分析,也可以利用python代码进行分析,如果使用python代码进行分析,需要借助pyshark或者scapy。使用的python WinDivert的包,当然前提也是需要安装Wireshark软件,设置环境变量,并安装pydirvert包。

youbingchen的博客 617

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

华为MetaERP国资委语境下的 DRP(全域数字化资源管理平台/Digitalized Resource-management Platform)与传统 ERP(以 SAP、Oracle 为代表)的

【摘要】国资委推动的DRP(全域数字化资源管理平台)正在重构央国企数智化转型路径,其本质是通过"ERP管交易+DRP管管控"的双层架构实现升维替代。与传统ERP相比,DRP具有三大突破:采用国产分布式数据库实现全级次穿透监管、构建数据中台打破信息孤岛、以实时分析替代事后报表。当前政策明确2026-2030年分阶段建设目标,这将重塑产业格局——倒逼传统ERP厂商转型,为云原生/AI/信创企业创造新机遇。需注意DRP并非简单替代ERP,而是通过治理模式变革实现"交易系统做薄、管控中

金牌架构师 287

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

cartographer实现纯定位

实现纯定位 (1)因为正常的cartographer的建图的map是由cartographer发布的;如下 rostopic info /map Type: nav_msgs/OccupancyGrid Publishers: * /cartographer_occupancy_grid_node 因此需要把map的发布替换成 <node name="map_server" pkg="map_server" type="map_server" args="/home/lx.

Studying…… 5888

SAP B1中文培訓教材_SDK

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

哈理工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

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

整数拆分问题的四种解法

整数划分问题是算法中的一个经典命题之一 所谓整数划分,是指把一个正整数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万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

整数划分总结

博客原地址: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

DP——整数划分

整数划分问题

mo8181的博客 345
上一篇: 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、付费专栏及课程。

余额充值