POJ1664:放苹果(线性dp)
题目: http://poj.org/problem?id=1664
Description
Input
Output
Sample Input
- 1
- 7 3
Sample Output
- 8
- 递推求解
如果m = 1,将一个苹果放在n个盘子里,因为511和151属于同一种方法,所以只有一种放法f(1,n) = 1;
如果n = 1,将m个苹果放在1个盘子里,只有一种方法f(m,1) = 1;
如果m=n, 分为两种情况1、每个盘子里都放苹果共有一种放法,2、至少有一个盘子里不放苹果 即与放在n-1个盘子里放法相同 所以f(m,n) = f(m,n-1)+1;
如果m > n, 同样2种情况1、每个盘子里都放苹果 先把n个苹果抽出来放进n个盘子里f(n,n) 还剩m-n个苹果放进n个盘子里f(m-n,n)*1 2、 至少一个盘子里不放 与上一个相同 所以总结果f(m,n) = f(m,n-1)+f(m-n,n);
如果m<n , 等于把把m个苹果放进m个盘子里 f(m,n) = f(m,m);
- 代码如下:
- #include <iostream>
- #include <stdio.h>
- #include <string.h>
- #include <algorithm>
- using namespace std;
- int n,m,dp[][];
- int main()
- {
- int T;
- scanf("%d",&T);
- while(T--)
- {
- scanf("%d%d",&m,&n);
- for(int i=;i<=m;i++)
- dp[i][]=;
- for(int i=;i<=n;i++)
- dp[][i]=;
- for(int i=;i<=m;i++)
- {
- for(int j=;j<=n;j++)
- {
- if(i==j)
- dp[i][j]=+dp[i][j-];
- if(i>j)
- dp[i][j]=dp[i-j][j]+dp[i][j-];
- if(i<j)
- dp[i][j]=dp[i][i];
- }
- }
- printf("%d\n",dp[m][n]);
- }
- return ;
- }
POJ1664:放苹果(线性dp)的更多相关文章
- poj1664 放苹果(DPorDFS)&&系列突破(整数划分)
poj1664放苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 33661 Accepted: 20824 Desc ...
- [POJ1664]放苹果(动态规划)
[POJ1664]放苹果 Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第 ...
- 放苹果问题 DP计数 m个苹果放在n个盘子里,苹果,盘子相同,盘子可为空
详细的解释放苹果问题的链接:苹果可相同可不同,盘子可相同可不同,盘子可空和不可空,都有详细的说明··· http://www.cnblogs.com/celia01/archive/2012/02/1 ...
- poj1664放苹果(递归)
题目链接:http://poj.org/problem?id=1664 放苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: ...
- POJ1664 放苹果 (母函数)
放苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37515 Accepted: 23090 Description ...
- poj1664 放苹果(递归)
转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://poj.org/problem?id=1664 ------ ...
- [POJ1664] 放苹果 (动态规划,组合数学)
题目描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分发(5,1,1和1,1,5是同一种方法) 输入输出格式 输入格式: 第一行是测试数据的数目t(0 <= ...
- 1192:放苹果(dp + 搜索)
这道题先用搜索写的,因为我需要先打表来寻找规律. 因为数据量小所以收搜也会过 #include<iostream> #include<cstdio> #include<c ...
- POJ1664 放苹果
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int ...
- [DP题]放苹果
放苹果(DP做法) 描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法.输入第一行是测试数据的数目t(0 < ...
随机推荐
- JQuery操作表单相关使用总结
select下拉列表onChange事件之JQuery实现: JQuery: $(document).ready(function () { $("#selectMenu").bi ...
- Stochastic Multiple Choice Learning for Training Diverse Deep Ensembles
作者提出的方法是Algotithm 2.简单来说就是,训练的时候,在几个模型中,选取预测最准确的(也就是loss最低的)模型进行权重更新.
- mysql -- 创建存储过程 往数据表中新增字段
需求: 往某数据库的某个表中新增一个字段(若该字段已存在,则不做操作:若该字段不存在,则新增) 百度了n久,没有符合要求的例子,只有参考加自己琢磨,最终终于给弄出来了,以下是几个版本的更迭 第一版: ...
- wifi的web 认证。
wifi的web 认证.wifidog+authpuppy+php 或者Wiwiz Auth API
- WebService的初级学习
复习准备 1. Schema约束: 1.1 namespace相当于Schema文件的id: 1.2 targetNamespace属性用来指定schema文件的namespace的值; 1. ...
- MathType中空格个数怎么显示
在使用Word文档的时候很时候用原软件自带的公式编辑器不是很好用,也不方法.MathType就是来解决这个问题的,但是一些用户在使用过程中发现不会看究竟输了多少空格,只能估摸大概.下面本MathTyp ...
- DEDECMS自定义表单提交后的跳转链接修改方法
dedecms自定义表单,点击提交后,默认跳转到首页,我们打开plus/diy.php,里面有这样一段代码: 代码如下:if($dsql->executenonequery($query)) { ...
- 编程之美 set 21 24点游戏
题目 输入: n1, n2, n3, n4 (1~13) 输出: 若能得到运算结果为 24, 则输出一个对应的运算表达式 如: 输入: 11, 8, 3, 5 输出: (11-8) * (3*5) = ...
- phpcms替换类列表页,内容页,主页
phpcms替换类列表页,内容页,主页 利用phpcms制作企业站,首先要将静态的企业主页替换成后台可编辑的动态主页. 在phpcms/install_package/phpcms/templat ...
- poj_3250 单调栈
题目大意 N头牛排成一列,每头牛A都能看到它前面比它矮的牛i,若前面有一个比他高的牛X,则X之前的牛j,A都无法看到.给出N头牛的高度,求出这N头牛可以看到牛的数目的总数. 题目分析 画图之后,可以很 ...