poj1664 放苹果

POJ1664--放苹果(动态规划) 简单动态规划问题 Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 Input 第一行是测试数据的数目t(0 Output 对输入的每组数据M和N,用一行输出相应的K。 Sample Input 1 7 3 Sample Output 8 1.当苹 阅读详情

原题: http://poj.org/problem?id=1664

这题没想出来,总觉得像之前看过的整数划分,然后就去查了一下整数划分,再去做就过了。这题数据小可以用递归做,自己也没想出来递归方式,还是太渣了。

百度上面很详细地讲了怎么用递归做整数划分,我也看了一下动态规划的算法,两个都学习学习,多学一点没坏处。

经典算法:递归整数划分  https://baike.baidu.com/item/%E6%95%B4%E6%95%B0%E5%88%92%E5%88%86/16472351?fr=aladdin

动态规划整数划分:  http://blog.youkuaiyun.com/athenaer/article/details/8265234

dp:

//dp[i][j],把i分成k份的方法有dp[i][j]种
//情况一: 每一份都>=1,所以我们可以先每一份分,则剩下i-j,再分给j分,即dp[i-j][j] 
//情况二: 至少有一份是1,则我们可以先把这一份1单独拿出来,剩下i-1,再把剩下的i-1分给其他的j-1份 即dp[i-1][j-1] 
#include<cstdio>
int main()
{
	const int maxn=11;
	int dp[11][11]={0};
	for(int i=1;i<maxn;i++)
	{
		for(int j=1;j<maxn;j++)
		{
			if(i>j)
			{
				dp[i][j]=dp[i-j][j]+dp[i-1][j-1];	
			}else if(i==j)
			{
				dp[i][j]=1;
			}else{
				dp[i][j]=0; 
			} 
		}
	}	
	int n,m;
	int t;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d %d",&n,&m);		
		int ans=0; 
		for(int i=1;i<=m;i++)
		{
			ans=ans+dp[n][i];
		}
		printf("%d\n",ans);
	}
	return 0;
} 
递归:

#include<cstdio>
int x[55];
int dp[11][11]={0};
int ans;
int m;
void split(int n,int k)//求具体划分集合 
{
	if(k>m)
	{
		return ; 
	}
	if(n==0)
	{
		if(k<=m)
		{
			ans++;
		}
	}else{
		for(int i=n;i>0;i--)
		{
			if(k==0 || i<=x[k-1])
			{
				x[k]=i;
				split(n-i,k+1);
			}
		}
	}
}
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int n;
		scanf("%d %d",&n,&m);
		if(dp[n][m]>0)
		{
			printf("%d\n",dp[n][m]);
		}else{
			ans=0;
			split(n,0);
			dp[n][m]=ans;
			printf("%d\n",ans);
		}
	}
}


Vivado工程芯片型号更换全流程:从IP更新到生成新bit文件(避坑指南) 本文详细介绍了Vivado工程中更换芯片型号的全流程,包括IP更新、约束文件适配和生成新bit文件的关键步骤。特别针对FPGA开发中常见的兼容性问题提供避坑指南,帮助开发者高效完成芯片迁移,确保设计稳定性和性能优化。 阅读详情

相关推荐

历年北京理工大学复试专业综合题

。

A place to record sth. 2万+

poj1664 (递推)

m个苹果放n个盘子里。盘子可以空,5,1,1和1,5,1是相同的方法。 1:先把n个盘子都放一个,剩下m-n个苹果在放这n个盘子。 2:有一个盘子空着,m个苹果放在n-1个盘子里。 #include int fun(int m,int n) { if(m<0) return 0; if(m==0||n==1) return 1; return fun(m-n,n)+f

Time is up , let's go . 524

置顶必读(1) |《YOLOv11实战:从入门到深度优化》专栏导读,带你一文了解本专栏!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏,该专栏专注于分享我在YOLOv8目标检测模型中的实战经验,涵盖从入门基础到深度优化的全方位解决方案。无论你是计算机视觉的新手,还是具有多年深度学习经验的专家,本专栏都将为你提供高效、可复现的技术方案,助你掌握YOLOv8的核心技术,提升目标检测性能,突破瓶颈,优化模型,并加速项目开发🚀!

**My Coding Family** 12万+

POJ1664:放苹果(DFS)

Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 Input 第一行是测试数据的数目t(0 Output 对输入的每组数据M和N,用一行输出相应的K。 Sample Input 1 7 3 Sample Output 8   其实这道题如果你有这个耐心的话,自

ACM!荣耀之路! 4156

【DaVinci Developer专题】-41-APP SWC如何读取写入NVM Block数据

APP SWC Port如何Read读取/Write写入NVM Block数据; DaVinci Developer中的Calibration Parameter/Per-Instance Memory/Service Need如何配置。

「汽车电子助手」的博客 4469

高级用法:LangChain 安全防护(Guardrails)

在调用开始时校验请求,可做关键词过滤、身份校验、限流等。= "human":return {}],# 使用],= "human":return {}],

Long_像风一样自由 316

POJ1664 放苹果【递推+记忆化递归】

  放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 35209   Accepted: 21792   Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 Input ...

海岛Blog 4100

⑩电子产品拆解分析-家用无线遥控开关433Mhz

①免布线随意贴,装上就能使用解决单线开关烦恼;②遥控配对简单,无线通讯距离长,信号可穿墙;

a6662580的博客 4696

poj1664 放苹果(不重复的n的m划分)(基础dp)

思路来源 挑战程序设计竞赛(第二版) 为白书打CALL... 心得 都怪自己没有好好看白书55555 m个苹果分给n个盘子, 包含重复情况的递推式,是自己之前写的那个 即给第n个盘子分m-i个苹果,剩下的交给i个苹果交给f(i)(n-1)   n个盘子不重复的话, 考虑,是否有盘子没有苹果。 如果有盘子没有苹果,则可以把m个苹果分给(n-1)个盘子。 否则若每个盘子...

小衣同学的博客 458

Wi-Fi物理帧间隔概念简介

物理帧间隔概念简介。

1042484520@qq.com(邮箱) 1778

Dify 实战:使用 Firecrawl 插件高效爬取微信公众号文章

本文介绍了如何利用Dify平台和Firecrawl插件构建微信公众号文章自动化采集系统。Dify作为开源LLM应用开发平台,结合Firecrawl的智能网页爬取能力,可轻松实现文章爬取、清洗和结构化存储。文章详细讲解了环境部署、插件安装以及工作流创建过程,通过可视化节点操作即可完成从URL输入到Markdown格式输出的全流程。该方案无需复杂代码,能有效解决反爬、动态渲染等问题,适用于知识库构建、模型训练等场景,显著提升开发效率。

SmartSi 1826

POJ 1664 放苹果

注释代码: /* * Problem ID : POJ 1664 放苹果 * Author : Lirx.t.Una * Language : C * Run Time : 0 ms * Run Memory : 172 KB */ #include //maximum number of apples and pl

源代码 618

Devexpress16.2.6破解工具

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

POJ 1664 放苹果 (递推思想)

原题链接:http://poj.org/problem?id=1664 思路:苹果m个,盘子n个。假设 f ( m , n ) 代表 m 个苹果,n个盘子有 f ( m , n ) 种放法。 根据 n 和 m 的关系可以进一步分析: 特殊的 n = 1 || m = 1 || n = 0 时只有一种方法 当 m &lt; n时,即使苹果每个盘子放一个也没法放满所有盘子,题目允许有的...

laugh12321的博客 543

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

POJ1664 放苹果

POJ1664 放苹果 Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 Input 第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。 Output 对输入的每组数据M和N,用一行输出相应的K。 Sample Input 1 7 3 Sample Output 8 题解: 用递归解题。比较m和n分两种情况

wwww190的博客 161

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

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

POJ1664 放苹果 递推

POJ1664 放苹果 转载 设f(m,n) 为m个苹果,n个盘子的放法数目,则先对n作讨论, 当n&gt;m:必定有n-m个盘子永远空着,去掉它们对摆放苹果方法数目不产生影响。即if(n&gt;m) f(m,n) = f(m,m)   当n&lt;=m:不同的放法可以分成两类: 1、有至少一个盘子空着,即相当于f(m,n) = f(m,...

Qianyri的博客 306

POJ 1664 放苹果(DFS)

POJ 1664 放苹果(DFS) http://poj.org/problem?id=1664 题意: 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 分析: 注意到盘子是一样的,方法5 1 1 和1 5 1 只能算一种.所以我们需要给每个盘子放的苹果数定序.        也就是说我们从少往多放,

code 1213

poj1664:放苹果问题(递归)

放苹果:http://poj.org/problem?id=1664 咱们设苹果的个数为m个,盘子的个数为n个。 第一种情况: 如果苹果只有一个或者零个,即m=1或m=0,此时只有一种放法; 第二种情况: 如果盘子只有一个,即n=1,那你所有苹果都得放到这一个盘子中,只有一种放法; 第三种情况: 如果说盘子个数比苹果多,那么这种情况就相当于盘子与苹果的个数一样,因为比苹果多出的那些盘子也没啥用; ...

simle的博客 350

POJ 1664放苹果题解

POJ 1664 放苹果 看到这一题,第一眼就感觉是排列组合的问题。想起了高中老师给总结的分组问题,然后就陷入了死循环。看了讨论区,才明白,这只是一道很简单的递推题~ 我们的关注点是苹果数最少的盘子里放了几个苹果,显然,有两种情况: 1,最少的盘子是空的,即0个苹果,那么此时,就相当于m个苹果放到n-1个篮子里 2,最少的盘子不是空的,假设有c个苹果,那么就可以先把所有盘子里放c个,剩下的...

阿飝的博客 492

【递推】POJ-1664 放苹果

POJ-1664 放苹果 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 Input 第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。 Output 对输入的每组数据M和N,用一行输出相应的K。 Sample

Floraqiu的博客 423

经典递归问题--放苹果POJ【1664】

经典递归问题--放苹果POJ【1664】

知识源于积累 3088

放苹果  POJ - 1664 JAVA DP

J - 放苹果 POJ - 1664 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 Input 第一行是测试数据的数目t(0 &lt;= t &lt;= 20)。以下每行均包含二个整数M和N,以空格分开。1&lt;=M,N&lt;=10。 Output 对输入的每组数据M和N,用一行输出相应的...

董公子的博客 592

[POJ] 1664 -> 放苹果

放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 27392   Accepted: 17380 Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 In

一个程序猿的BLOG 570
上一篇: poj1456 Supermarket
下一篇: poj1690 (Your)((Term)((Project))) (括号配对)
勤勤勤能补拙
博客等级 码龄10年 60粉丝 155原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值