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

article/2025/10/7 20:56:51

题目描述:

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

补充:正整数的这种操作称为正整数的划分,正整数的不同划分个数称为正整数n的划分数,记为p(n)。例如:p(6)=11;

解题:

分析:在如上对6的划分中,我们可以发现分层进行。将最大加数不超过m的划分个数记作q(n,m).
p(6)=q(6,6)
对q(n,m),我们可以建立如下递归关系。
(1).q(n,1)=1,n>=1;
即n只能划分为1+1+…+1(n个1️⃣)
(2).q(n,m)=q(n,n),m>=n;
最大加数m永远不能大于n。
(3)q(n,n)=1+q(n,n-1)。
当取n1=n时,只有一种划分,当n1=n-1时,有q(n,n-1)种划分
(4):q(n,m)=q(n,n-1)+q(n-m,m),n>m>1.
(正整数n的最大加数n1不大于m的划分)即q(n,m)由n1=m的划分(这里可看做q(n-m,m),因为第一个数确定为m,剩下数的总和为n-m,对其在拆分即可)和n1<=m-1的划分组成。

综上:得到q(n,m)的递归式

q(n,m)={1,n=1,m=1;
------------q(n,n),n<m;
------------q(n,n-1)+1,n=m
------------q(n,m-1)+q(n-m,m),n>m>1}

代码实现:C++

#include<iostream>
using namespace std;
int q(int n,int m) {if ((n < 1) || (m < 1))return 0;if ((n == 1) || (m == 1))return 1;if (n < m)return q(n, n);if (n == m)return q(n, m - 1) + 1;return q(n, m - 1) + q(n - m, m);
}
int main() {int n;cin >> n;cout << q(n, n) << endl;return 0;
}

代码实现,JAVA:

public static int q(int n,int m){
if ((n < 1) || (m < 1))return 0;if ((n == 1) || (m == 1))return 1;if (n < m)return q(n, n);if (n == m)return q(n, m - 1) + 1;return q(n, m - 1) + q(n - m, m);}

效果:
在这里插入图片描述
总结:这是最经典的分治之一,反复应用分治手段,可以使子问题和原问题类型一致而规模不断缩小,最终使得子问题很容易求解,最后合并所得解即可。本题中,通过对q(n,n)的分解,我们得到若干个简单的子问题q(6,1)、q(1,5)等等,最终合并得p(n).


http://chatgpt.dhexx.cn/article/OPxqs3XU.shtml

相关文章

数据源:SHP数据下载平台

1. 地理信息专业知识服务系统 中国工程院 中国工程科技知识中心 2. 国家基础地理信息中心 自然资源部 国家基础地理信息中心 3. 天地图API 自然资源部 国家基础地理信息中心 4. 中国科技资源共享网 科技部 国家科技资源共享服务工程技术研究中心 5. 地球大数据科学工…

使用ARCGIS对shp数据添加投影坐标系

系统工具箱→data management tool→投影和变换→定义投影 输入需要添加投影的shp 选择需要的投影坐标系

【使用QGIS入库将shp数据导入postgis、postgres数据库】

使用QGIS入库将shp数据导入postgis、postgres数据库 第一步&#xff0c;安装并打开QGIS软件 第二步&#xff0c;连接PostGIS数据库 在弹出的连接信息界面中配置数据库连接参数 输入数据库连接参数后点击ok 数据库连接成功则自动保存配置信息 第三步&#xff0c;打开数据导入…

2.1.2Arcpy开发记录_shp数据类型描述

Demo实现功能&#xff1a;print出输入.shp的数据类型&#xff0c;如线&#xff0c;面&#xff0c;点 官方文档&#xff1a;Describe 对象属性—ArcMap | 文档 本机环境&#xff1a;ArcGIS10.3&#xff0c;Python27 import arcpy import osfolder rE:/2021work/TJ_J/pythonT…

geotools将shp数据存入postgres

一、引入geotools的依赖 引入geotools的方法 <dependency><groupId>org.geotools</groupId><artifactId>gt-shapefile</artifactId><version>27-SNAPSHOT</version></dependency><dependency><groupId>org.geot…

全国高铁线路及站点shp数据(2020年)

名称&#xff1a;全国高铁线路及站点shp数据&#xff08;2020年&#xff09; 区域范围&#xff1a;全国 时间范围&#xff1a;2020 语言&#xff1a;中文 格式&#xff1a;.shp 该数据为2020年的全国范围的高铁线路和站点数据&#xff0c;格式为shp格式&#xff0c;坐标为wgs19…

深圳市“详规一张图”shp数据爬取后数据表无法打开的问题解决办法

最近在研究爬取深圳市规自局网站上的“详规一张图”数据&#xff0c;无奈爬虫技术太低&#xff0c;无意中看到了大佬“Atom数据”的“深圳详规“一张图”数据获取【代码更新】”一文中给出的代码爬取方案&#xff0c;再次感谢&#xff01; 然而在经历了千辛万苦之后终于将详规一…

FME将用SHP数据对栅格影像数据进行裁剪

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、需求二、实操 1.数据准备2.FME的流程设置3.裁剪的结果总结 前言 利用FME对数据进行操作与处理的过程。 一、需求 裁剪出shp范围内或者范围外的栅格影像数…

三步教你免费下载省,市,区县行政区Shp数据

摘要&#xff1a;一般非专业的GIS应用通常会用到省市等行政区区划边界空间数据做分析&#xff0c;本文简单介绍了如何在互联网上下载省&#xff0c;市&#xff0c;区县的shp格式空间边界数据&#xff0c;并介绍了一个好用的在线数据转换工具&#xff0c;并且开源。 一、首先&a…

数据处理(1):十万加SHP数据重载导入标准字段图层

使用工具&#xff1a;Arcgis 时常我们会从客户、网络得到数据&#xff0c;但是数据里面字段名于公司规定得字段名有出入&#xff0c;此时就需要进行数据调整&#xff0c;首先我们打开软件“ArcCatalog” 在任意文件夹下右击&#xff0c;选择“新建-文件地理数据库”&#xff0c…

shp数据中文乱码的一种恢复方法

一、准备 1、QGIS软件 2、乱码识别网站 二、转换步骤 &#xff08;一&#xff09;示例展示 如图&#xff0c;有一个不知道怎么产生的shp文件&#xff0c;在arcmap中&#xff0c;中文字段显示乱码&#xff0c;添加cpg文件后&#xff0c;仍然无法解决。 &#xff08;二&…

【GlobalMapper精品教程】053:打开dbf文件并生成有坐标系的shp数据

本文讲解在globalmapper汇总打开dbf文件并生成有坐标系的shp数据。 文章目录 一、dbf文件解读二、打开dbf文件二、另存为shp文件一、dbf文件解读 我们可以通过Excel或FME等多种软件查看dbf的结构,字段有:Name,kind,Lat,Lon,其中Lon为经度,Lat为纬度,我们后续一定是通过…

html 显示shp,cesium加载本地shp数据

用户选择本地磁盘shp数据后,直接在三维球上展示。本文默认已经有了vue和cesium整合后的工程。 官网地址:git://github.com/wavded/js-shapefile-to-geojson.git 1、vue-cli3.x+cesium的项目目录 image.png 2、CesiumViewer.vue代码: 加载shp数据 import Cesium from cesium/…

将shp数据导入SQL Server

记录Shape2SQL的使用过程及注意事项 20220322更新&#xff1a;出现30万行线要素导入后不显示的问题&#xff0c;分两次导入就正常了&#xff0c;没有找到原因&#xff0c;隔壁30万行点要素没出问题 一、Shape2SQL工具可以将shape数据导入SQL Server 2008R2 下载地址&#xf…

重庆市最新轨道交通SHP数据 - 202201

重庆市最新轨道交通SHP数据 - 202201 由于最近需要用到重庆市的轨道交通数据&#xff0c;但下载到的数据略有缺&#xff0c;因此对着重庆轨道交通集团提供的图及QGIS中的OSM&#xff0c;对下载的数据进行了修正。 下图是在QGIS中结果。共有站点193个&#xff0c;路线11条&…

shp数据制作3DTiles白膜

3D Tiles格式介绍 3D Tiles用于大场景的三维模型。 3D Tiles是一个开放的规范&#xff0c;用于传输海量的异构三维地理空间数据集。使用概念上类似于terrain和imagery的瓦片流技术&#xff0c;3D Tiles 使得建筑物数据集、BIM模型、点云和摄影测量模型等大模型比较流畅的在Web…

osgEarth 加载矢量shp数据

加载osgearth自带的world.shp矢量数据&#xff1a; #include "stdafx.h" #include <Windows.h> #include <iostream> #include <string> using namespace std;#include <osgViewer/Viewer> #include <osg/Node> #include <osg/Ge…

导入shp数据到postgis库

1、安装完postgis之后&#xff0c;打开PostGIS PostGIS Bundle 3 for PostgreSQL x64 12 Shapefile and DBF Loader Exporter 2、填写数据库信息 3、填完后就显示成功了 4、点击Add File 添加shp文件 5、点击import导入 6、去数据库查看有表存在了 其他拓展&#xff1a;postgis…

推荐一个免费下载省-市-区县行政区Shp数据的方法

推荐一个免费下载省-市-区县行政区Shp数据的方法&#xff0c;简单实用。 文章目录 一、选择下载数据二、保存json格式三、json转shp格式 一、选择下载数据 本文讲解利用阿里云提供的地图选择器网站选择想要下载的行政区的方法&#xff0c;点击打开阿里云地图选择器网站&#x…

GeoServer发布shp数据

前段项目中应甲方要求&#xff0c;需要将地图服务过程简化到越简单越好&#xff0c;由于该项目中地图只作为底图&#xff0c;只是看看而已&#xff0c;并未涉及到空间数据分析之类的。所以&#xff0c;项目中裁掉了空间数据库这一部分。在没空间数据库的情况下&#xff0c;空间…