算法题目——整数划分(HRBUST-2004)

题目链接:HRBUST-2004

递归法:

1.当n=1时,此时只有1种解{1};

2.当m=1时,此时也只有1种解{1,1,1, …

3.当n> m时,要分为最大数包含m和不包含m两种情况。

●包含m:此时就是{mx1,2…}. 其中x1+x2+3.+… =n-m, 就相当于求和为n-m,最大值为m的划分个数: f(n-m,m)
●不包含m:此时最大数最大为m-1,相当于把n划分为最大数为m-1的划分个数: f(n,m-1)

因此:当n>m时划分个数为f (n-m,m) +f (n,m-1)

4.当n=m时,此时也要分为两种情况,包含m和不包含m。

●包含m,此时就只有一种情况,{m}
●不包含m,此时最大值为m-1, f(n,m-1)

因此:当n=m时, 划分个数为1+f (n, m-1) ;

5.当n<m时,此时不可能包含m,最大值最大就是n,最大划分个数为f (n,n) 。也可以分为包含n和不包含n两种情况:

●包含n,此时就只有一种情况,{n};●不包含n,最大值是n-1, f(n,n-1)

因此可以写成1+(n,n-1).
相关问题分析:算法设计与分析——分治与递归——整数划分问题
问题点:注意 多组测试数据,输入到文件结束

#include<iostream>
#include<vector>
using namespace std;
int q(int n,int m)//整数n的划分,划分中最大数为m 
{if((n<0)||(m<0))return 0;if((n==1)||(m==1))return 1;if(n<m)return q(n,n);if(n==m)return (1+q(n,m-1));if(1<m<n)return q(n,m-1)+q(n-m,m);
}
int main()
{int n;vector<int> vec;while(scanf("%d",&n)!=EOF){vec.push_back(q(n,n));} for(int i=0;i<vec.size();i++){cout<<vec[i]<<endl;}return 0;}

在这里插入图片描述

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

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

相关文章

dotnet core 应用是如何跑起来的 通过自己写一个 dotnet host 理解运行过程

在上一篇博客是使用官方提供的 AppHost 跑起来整个 dotnet 程序。本文告诉大家在 dotnet 程序运行到托管代码之前&#xff0c;所需要的 Native 部分的逻辑。包括如何寻找 dotnet 运行时&#xff0c;如何加载运行时和框架然后跑起来业务端的 dll 文件的逻辑在上一篇博客告诉大家…

android虚线边框_Android实现代码画虚线边框背景效果

实现如下边框效果&#xff1a;虚线画效果&#xff0c;可以使用Android中的xml来做。下面话不多说&#xff0c;直接上代码&#xff1a;android:id"id/coupon_popup"android:layout_width"320dp"android:layout_height"200dp"android:layout_margi…

算法题目——多米诺骨牌问题(POJ-2663)

题目链接&#xff1a;POJ-2663 设有形状一样的多米诺牌&#xff0c;每张牌恰好覆盖棋盘上相邻的两个方格&#xff0c;即一张多米诺牌是一张 1 行 2 列或者 2 行 1 列的牌。那么&#xff0c;是否能够把 32 张多米诺牌摆放到棋盘上&#xff0c;使得任何两张多米诺牌均不重叠&…

【招聘(上海)】 坚果云 招聘Windows客户端(WPF方向)

岗位职责&#xff1a;1、负责坚果云在Windows 10平台上WPF应用的开发与维护&#xff1b;2、负责基于WPF的Windows平台核心客户端产品开发&#xff0c;维护与测试&#xff1b;3、WPF桌面应用将具备丰富的文件展示和文件管理功能&#xff0c;其中与操作系统交互&#xff0c; 复杂…

三相全桥整流电路_三相桥式全控整流电路

收稿日期:2002-04-12作者简介:陈强(1976—),男,硕士研究生1三相桥式全控整流及单相交流调压实验装置的研制陈强,杨旭,王兆安(西安交通大学电气工程学院,西安710049)摘要:本文结合具体的三相全控整流电路的研制,介绍了以国产集成芯片KJ004和KJ041为中心的触发电路的工作过程及主…

算法题目——Problem A 二进制(北邮机试)

Problem A 二进制 题目描述 32位二进制数 X ,对其进行X+1,X+3操作,并输出。注意不能忽略前导0。 输入 第一行,一个整数 T ,代表测试数据组数。接着 T 行,输入32为二进制数输出对每组测试数据。 输出 两行,第一行为X+1,第二行为X+3. 测试样例 输入 2 00000000000000000000…

merge函数_c语言中的merge函数

展开全部merge()是C标准库的函数&#xff0c;主要实现函数的排序和合并&#xff0c;不仅仅是合并&#xff0c;具体要求参e5a48de588b63231313335323631343130323136353331333431373261照标准库。#include"stdafx.h"#include#include#include#includeusingnamespacest…

算法题目——求众数

在c中有两个关联容器&#xff0c; 第一种是map&#xff0c;内部是按照key排序的&#xff0c;从小到大 第二种是unordered_map&#xff0c;容器内部是无序的&#xff0c;使用hash组织内容的。 #include<iostream> #include<map> #include<algorithm> using n…

2020武汉dotNET俱乐部分享交流会圆满结束

经过长达2个多月的准备&#xff0c;终于在12月5日圆满的举行了武汉首次dotNET俱乐部线下分享交流活动。我们一共精心准备了3个目前比较热门的主题&#xff0c;分别如下&#xff1a;Jason分享的《ABP开发框架的扩展应用》Leo分享的《基于Kubernetes的DevOps平台应用》Eleven分享…

r语言remarkdown展示图_R语言—自动报告Markdown笔记

一句话介绍&#xff1a;Markdown是一种轻量级标记语言&#xff0c;内容是代码与文本的混合&#xff0c;类似HTML,但语法比HTML简单。&、比如&#xff1a;如果你写&#xff1a; 4<5 ,Markdown将会把他转换为&#xff1a; 4<5换行符&#xff1a;在Markdown中依然使用&a…

算法——常用的数据结构/模板/基础知识

常用的数据结构/模板/基础知识(一)c——优先队列(priority_queue)最大堆和最小堆的写法(二)c中的全排列函数next_permutation()(三)迭代器的使用(四)数学知识数列求和(五)求最大公约数和最小公倍数(六)将数值型数据转化为string 类型(一)c——优先队列(priority_queue) 最大堆…

对 精致码农大佬 说的 Task.Run 会存在 内存泄漏 的思考

一&#xff1a;背景 1. 讲故事这段时间项目延期&#xff0c;加班比较厉害&#xff0c;博客就稍微停了停&#xff0c;不过还是得持续的技术输出呀&#xff01;园子里最近挺热闹的&#xff0c;精致码农大佬分享了三篇文章&#xff1a;为什么要小心使用 Task.Run [https://www.c…

算法题目——爬楼梯(动态规划)

题目链接:70.爬楼梯 类似题目:1646.获取生成数组中最大值 本题大家如果没有接触过的话,会感觉比较难,多举几个例子,就可以发现其规律。 爬到第一层楼梯有一种方法,爬到二层楼梯有两种方法。 那么第一层楼梯再跨两步就到第三层 ,第二层楼梯再跨一步就到第三层。 所以到…

jpi多表联查_数据库两表联查、多表联查,多重联查

表连接查询【小编用的是Oracle数据库&#xff0c;Oracle数据库区分表名与字段名的大小写&#xff0c;所以大家进行查询的时候记得注意双引号哟~】有表表名&#xff1a;AAA 字段&#xff1a; id name tag表名&#xff1a;BBB 字段&#xff1a; id ban qq表名&#xff1a;AABB字段…

GraphQL:从头开始

GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述&#xff0c;使得客户端能够准确地获得它需要的数据&#xff0c;而且没有任何冗余&#xff0c;也让 API 更容易地随着时间推移而演进&#xff0c…

iar 看时序_IAR 硬件仿真查看运行时间

最近做STM8的项目&#xff0c;IDE从Keil变成IAR非常不习惯&#xff0c;就像用惯VS用回VC一样。调试软件延时函数&#xff0c;想看一下运行效果&#xff0c;竟然无从下手(Keil有一个查看运行时间的窗口)&#xff0c;网上都是用Simulator软仿真的查看&#xff0c;换成STLINK硬仿真…

算法题目——使用最小花费爬楼梯(动态规划)

题目链接:746.使用最小花费爬楼梯 方法:动态规划 假设数组cost的长度为n,则n个阶梯分别对应下标0到n- 1,楼层顶部对应下标n,问题等价于计算达到下标n的最小花费。可以通过动态规划求解。 创建长度为n + 1的数组dp,中dp[i] 表示达到下标i的最小花费。 于可以选择下标0或1作…

Kubernetes 1.20 发布:妙啊

喜欢就关注我们吧&#xff01;Kubernetes 1.20 发布&#xff0c;这是 2020 年的第三版也是最终版。Kubernetes 1.20 还是最近这段时间以来&#xff0c;功能最密集的版本之一&#xff0c;此版本包含了 42 个增强功能&#xff0c;其中 11 个增强功能已逐步升级为稳定版&#xff0…

s2 安恒 漏洞验证工具_Struts2漏洞利用工具下载(更新2017-V1.8版增加S2-045/S2-046)

Struts2漏洞利用工具下载(已更新V1.8版)2017-03-21&#xff1a;增加S2-046&#xff0c;官方发布S2-046和S2-045漏洞引发原因一样&#xff0c;只是利用漏洞的位置发生了变化&#xff0c;S2-046方式可能绕过部分WAF防护&#xff0c;存在S2-045就存在S2-046。http://struts.apache…

算法题目——生成括号匹配

题目链接:剑指offer.85 生成 n 对括号共需要 2n 步,每一步都面临两个选项,即生成左括号或者右括号,题目要求返回所有的情况,所以本问题很适合采用回溯法。 在生成左右括号时存在两个限制条件,一个是左括号或者右括号的数量都不能超过 n 个,第二个是已经生成的右括号数…