搜索——Ny 90 整数划分

整数划分(递归方法) 经典整数划分问题递归图解 阅读详情

1)   题目

整数划分

时间限制:3000 ms  |  内存限制:65535 KB

难度:3

描述

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

输入

第一行是测试数据的数目M(1<=M<=10)。以下每行均包含一个整数n(1<=n<=10)。

输出

输出每组测试数据有多少种分法。

样例输入

1

6

样例输出

11


2)    题意

不再赘述。


3)    数据范围

测试数据数和n的值最大为10,数据量很小,手算都很容易。


4)    算法

搜索法

为了避免搜索到重复的划分方法,规定:

划分序列a1+a2+…+an,ai>=ai+1, 1<=i<n。

如下图是划分整数6的一棵搜索树。两方格内的数字是划分出的两个数。如6可以划分为5+1,4+2,3+3。


图中以红色数字为根节点一棵树,即为该红色数字的划分搜索树。


5)    代码

#include <iostream>
#include <cstdio>
#include <ctime>

using namespace std;

int count;

//num为要划分的数,minn为允许划分出的最小数
void Backtrack(int num, int minn)
{
	//printf("%d %d\n", num, minn);
	count++;
	if (num > 1)
	{
		int left, right;
		for (left = num-minn, right = minn; left >= right; left--, right++)
		{
			Backtrack(left, right);
		}
	}
}

int main(void)
{
	int ncases;
	scanf("%d", &ncases);
	while (ncases-- != 0)
	{
		int num;
		scanf("%d", &num);
		count = 0;
		//clock_t start, finish;
		//start = clock();
		Backtrack(num, 1);
		//finish = clock();
		//printf("%lf\n",  (double)(finish - start) / CLOCKS_PER_SEC);
		printf("%d\n", count);
	}
	return 0;
}

/*
#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 a;
	cin>>a;
	while(a--)
	{
		int n;
		cin>>n;
		cout<<q(n,n)<<endl;
	}
	return 0;
}
*/


6)    测试数据

10

1

2

3

4

5

6

7

8

9

7)    提交结果


第一次,没有按输入格式来,粗心。

解决 `version ‘GLIBCXX_3.4.32‘ not found‘ not found` 错误 解决 `version 'GLIBCXX_3.4.32' not found' not found` 错误 阅读详情

相关推荐

蓝牙RSSI定位实战:用Arduino+BLE4.0搭建厘米级室内定位系统(附完整代码)

本文详细介绍了如何利用Arduino和BLE4.0模块构建厘米级精度的蓝牙RSSI室内定位系统。通过硬件选型、系统架构设计、三点定位算法实现及误差补偿技术,实现在商场导览、仓储管理等场景中的高精度定位。附完整代码和实测数据,帮助开发者快速部署商用级解决方案。

peace的博客 897

nyoj90整数划分 搜索DFS 动态规划

整数划分时间限制:3000 ms  |  内存限制:65535 KB难度:3描述将正整数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+...

popcjz的博客 1647

第1部分 基础算法(提高篇)--第2章 二分与三分1439:【SCOI2010】传送带

1439:【SCOI2010】传送带 时间限制: 2000 ms 内存限制: 65536 KB 提交数: 372 通过数: 212 【题目描述】 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段。两条传送带分别为线段AB和线段CD。lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R。现在lxhgww想从A点走到D点,他想知道最少需要走多长时间。 【输入】 输入数据第一行是4个整数,表示A和B的坐标,分别为Ax,Ay,Bx,By 第二行是4个整

zqhf123的博客 837

整数划分 深搜(递归)

java 几个简单的问题,运用深搜(递归)解决 1. N个整数划分为K个子集 2. 在N个整数中选取M个数,使其和等指定值 3. 在N个整数中选取任意个数,使其和等于指定值 4. 在N个整数集合中,将集合划分为两部分,且子集交集为空,使其子集的和尽量相等import java.util.Arrays; import com.util.Array; import com.util.P

u013270359的博客 487

2024年上市公司ESG评级全解析:六大权威数据源横向对比与应用指南

本文深度解析2024年国内主流ESG评级数据源,包括华证、商道融绿、Wind、富时罗素和彭博,横向对比其覆盖范围、评分逻辑与应用侧重点。文章提供实战指南,帮助投资者与企业根据投资决策、风险管理和学术研究等不同场景,精准选择并有效应用ESG数据,实现从概念到实用分析工具的转变。

weixin_29229055的博客 312

LVGL hal disp(porting display)

LVGL本身是没有对接最终的显示框架的,所以到具体的某个平台上,需要自行porting。

Bigan(安)的博客 2097

整数划分

#include&lt;bits/stdc++.h&gt; using namespace std; typedef long long ll; const int mx = 3e2 + 10; int n,m,ans; ll dp[mx][mx];//dp[i][j]表示i整数分成j份的方案数 int main() { scanf("%d%d",&amp;n,&amp;m); dp[0][...

过路人丶的博客 403

C2000ware介绍

C2000的下载安装指南C2000目录。

小柚子的博客 2796

实验7-1-7 查找整数(10 分)

/* 实验7-1-7 查找整数(10 分) 本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。 输入格式: 输入在第一行中给出两个正整数N(≤20)和X,第二行给出N个整数。数字均不超过长整型,其间以空格分隔。 输出格式: 在一行中输出X的位置,或者“Not Found”。 输入样例1: 5 7 3 5 7 1 9 输出...

你一直都在心间 1万+

[P4V]Perforce(P4V)使用教程

1.前言 Perforce SCM System是一款构建于可伸缩客户/服务器结构之上的软件配置管理工具。仅仅应用TCP/IP,开发人员就能够通过多种Perforce客户端(几种平台的GUI、WEB、或命令行)访问Perforce服务器。Perforce能够被快速和容易地部署,即使对大型或分布式的站点,也只要求最小限度的管理。Perforce可以使用在50多个操作系统中,它包括版...

元直的博客 2万+

作物生长模型Oryza V3实战1:为什么要研究它

ORYZAV3是水稻生长模拟模型ORYZA2000的最新升级版本(3.5版),作为作物生长模型,它通过数学方法和计算机技术模拟水稻生长发育过程及其与环境条件的相互作用。主要功能包括:模拟不同条件下的水稻生长和产量形成、评估环境胁迫影响、分析土壤碳氮动态以及进行区域尺度模拟。国内应用广泛,科研机构用于气候变化影响评估、灌溉模式比较等研究,并开展参数敏感性分析和应用培训。使用流程分为六个步骤:确定输入参数(气象、土壤、作物三类)、参数校准、设置模拟环境、运行模型、分析结果(输出50个参数)和计算产量(穗干重×收

504

整数的划分(递归法, 打表搜索, 动态规划法)

直接举个例子什么是整数的划分。 如有整数 5 接下来对 5 经行划分 5 + 0 4 + 1, 3 + 2 3 + 1 + 1, 2 + 2 + 1 2 + 1 + 1 + 1 1 + 1 + 1 + 1 + 1 共 7 种 划分方法。 这里直接将用递归解决此问题的思路, 通过看上面的对 5 的划分可以看出, 每种划分中必定有一个最大数(可以有多个)。 我们可以将那个最大的数 成为 m, 而 ...

当你在抱怨为什么没有时,请记住,这是你的机会! 1126

VLA仿真平台:Isaac sim、MuJoCo

在虚拟仿真领域,VLA(Virtual Learning Agent)仿真器是用于开发和训练虚拟机器人代理的环境,它们为机器人提供了一个平台来进行各种任务的模拟和学习,特别是在强化学习(RL)中。两款广泛应用的仿真器是和。这两者各有其特点和优势,适用于不同类型的机器人研究和开发。

u013250861的博客 860

测试数据整数搜索——Ny 90 整数划分

在改章节中,我们主要介绍测试数据整数的内容,自我感觉有个不错的建议和大家分享下          1)   目题     整数分别     时光制限:3000 ms  |  存内制限:65535 KB     难度:3     描述     将正整数n表现成一系列正整数之和:n=n1+n2+…+nk,  其中n1≥n2≥…≥nk≥1,k≥1。  正整数n的这类表现称为正整数n的分别。...

weixin_34252090的博客 122

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

nyoj90整数划分

整数划分 时间限制:3000ms | 内存限制:65535KB 难度:3 描述将正整数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;...

dianpuding9411的博客 267

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

BFS——NYOJ 21 三个水杯

三个水杯 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子。三个水杯之间相互倒水,并且水杯没有标识,只能根据给出的水杯体积来计算。现在要求你写出一个程序,使其输出使初始状态到达目标状态的最少次数。 输入第一行一个整数N(0 接下来每组测试数据有两行,第一行给出三

Vector 7049

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

搜索算法的感悟——解空间

练习了将近一个月的搜索算法了,也有了一些小小的感悟。 搜索算法的两个关键问题: (1):如何找到整个解空间。 (2):如何剪枝。 我的感悟是关于解空间的。问题的解往往需要经过一系列操作之后才能得到,而在这一系列的操作中,每一步的操作都会得到一个状态,当最终这个状态与目标状态相同时,此时也就是得到了结果,所以在搜索的过程中,着重需要处理的就是操作和状态。只有考虑了所有可能的操作,才会得到所有

Vector 6610

迷宫中回溯法的剪枝——奇偶剪枝

问题描述 在一个n行m列的迷宫中,每一步只能向上、下、左、右中任意方向走一格,迷宫中有围墙的地方是无法到达的。从起点s开始,能否刚好走t步,到达e。 例如在下面5行5列的迷宫中,能否恰好经过9步,从s走到e。初始位置在s上,#是围墙。 奇偶剪枝 设起点s的坐标为(sx,sy),终点e的坐标为(ex,ey); 对s的一次操作为对sx或sy进行+1或-1; 若经过t次操作后

Vector 5385

NYOJ 58 最少步数

最少步数 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 这有一个迷宫,有0~8行和0~8列:  1,1,1,1,1,1,1,1,1  1,0,0,1,0,0,1,0,1  1,0,0,1,1,0,0,0,1  1,0,1,0,1,1,0,1,1  1,0,0,0,0,1,0,0,1  1,1,0,1,0,1,0,0,1

Vector 3104

第5章 回溯法,装载问题

#include #include #include using namespace std; #define MAX 100 int c1, c2; //两船的载重量 int n; //货物数量 int w[MAX]; //货物重量 int maxw; //最大装载量 bool finished; //已达到装载最大量时,finished为true void Backtr

Vector 2124

第5章 回溯法,0-1背包问题

#include #include #include using namespace std; #define MAXN 10 struct Goods_Info { int v; //价值 int w; //重量 double vw; //价值重量比 }goods[MAXN]; int n; int maxValue; bool solu[MAXN]; bool opti

Vector 2085

第5章 回溯法,符号三角形问题

#include #include using namespace std; #define MAXSIZE 21 int n; //第一行符号个数 int signTriangle[MAXSIZE][MAXSIZE]; //符号三角形矩阵,矩阵最左侧一列不用 int count; //满足条件的符号三角形个数 int half; //符号总数的一半

Vector 2058

回溯法+奇偶剪枝——Hdu 1010 Tempter of the Bone

1)   题目 Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 47967    Accepted Submission(s): 12905 Problem Descriptio

Vector 2041

回溯法——Ural 1073 Square Country

1073. Square Country Time Limit: 1.0 second Memory Limit: 16 MB There live square people in a square country. Everything in this country is square also. Thus, the Square Parliament has pass

Vector 1558

第5章 回溯法,批处理作业调度

#include #include using namespace std; #define MAX(a, b) ((a) > (b) ? (a) : (b)) #define MAXSIZE 10 #define INF 999999999 struct Job_Info { int t1, t2; }job[MAXSIZE]; int n; //作业数量 int solu

Vector 1479
上一篇: 第4章 贪心算法,Dijkstra算法(邻接矩阵存储,时间复杂度为O(n^2))
下一篇: 迷宫中回溯法的剪枝——奇偶剪枝
庞老板
博客等级 码龄15年 127粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

庞老板

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值