ACM题目————放苹果
Description
Input
Output
Sample Input
1
7 3
Sample Output
8
这题有两种解法!当数据较小的时候,直接递归也可以AC。
代码如下:
//Asimple
#include <stdio.h>
#include <iostream>
using namespace std; typedef long long ll ;
int n, m, T;
ll sum ; ll fun(int m, int n)
{
if( m == 0 || n==1 ) return 1 ;
if( m < n ) return fun(m,m);
else return fun(m,n-1) + fun(m-n,n);
} int main()
{
cin >> T ;
while( T -- )
{
scanf("%d%d",&m,&n);
sum = fun(m,n);
cout << sum << endl ;
} return 0;
}
当数据太大的时候,用递归就有可能出现时间超限的问题了,于是,就有了以下解法(动态规划)!
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
int n,m;
long long dp[1001][1001];
int main()
{
for(int i=1; i<=1000; i++)
{
dp[i][1]=1;
dp[i][0]=0;
for(int j=1; j<=1000; j++)
{
dp[0][j]=1;
if(i<j)
dp[i][j]=dp[i][j-1];
else
dp[i][j]=dp[i][j-1]+dp[i-j][j];
}
}
int t;
cin>>t;
while(t--)
{
scanf("%d%d",&n,&m);
printf("%d\n",dp[n][m]); }
}
ACM题目————放苹果的更多相关文章
- ACM_递推题目系列之三放苹果(递推dp)
递推题目系列之三放苹果 Time Limit: 2000/1000ms (Java/Others) Problem Description: 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放 ...
- oj放苹果
题目描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 输入 每个用例包含二个整数M和N.0<=m< ...
- poj1664放苹果(递归)
题目链接:http://poj.org/problem?id=1664 放苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: ...
- poj 1664 放苹果(递推)
题目链接:http://poj.org/problem? id=1664 放苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions ...
- poj1664 放苹果(DPorDFS)&&系列突破(整数划分)
poj1664放苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 33661 Accepted: 20824 Desc ...
- 递归--练习4--noi666放苹果
递归--练习4--noi666放苹果 一.心得 写出状态后勇敢假设 二.题目 666:放苹果 总时间限制: 1000ms 内存限制: 65536kB 描述 把M个同样的苹果放在N个同样的盘子里,允 ...
- POJ1664:放苹果(线性dp)
题目: http://poj.org/problem?id=1664 Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1 ...
- 刷题向》DP》放苹果 (normal)
这篇博客可能字数比较多,而且很难讲清楚,我会努力给你们讲清楚: 首先,放苹果是一道DP,之所以难,是因为很难想到,我的确有同学用三维数组做出来,然而三维的的确比二维好理解,但三维复杂度太高,虽然DP一 ...
- POJ1664 放苹果 (母函数)
放苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37515 Accepted: 23090 Description ...
随机推荐
- SWIFT Button的基本用法
import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: ...
- 【推荐】使用Jquery+EasyUI进行框架项目开发案例讲解之一---员工管理源码分享
使用Jquery+EasyUI 进行框架项目开发案例讲解之一 员工管理源码分享 在开始讲解之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery的U ...
- Python之配置文件模块 ConfigParser
写项目肯定用的到配置文件,这次学习一下python中的配置文件模块 ConfigParser 安装就不说了,pip一下即可,直接来个实例 配置文件 project.conf [db] host = ' ...
- (Builder)创建者模式
定义: 建造模式:将一个复杂对象的构建与他的表示相分离,使得同样的构建过程可以创建不同的表示. 适用性: 当流程算法可以固定几个步骤,步骤的算法步骤执行顺序固定,且制造的产品可以唯一确定,这时使用创建 ...
- ViewController 的代码规范
1.#pragma mark - life cycle viewDidLoad viewWillAppear 2.#pragma mark - delegate #pragma mark collec ...
- PostgreSQL数据导出导入COPY
[postgres@DELL-R720 bin]$ ./psql -p 6432psql (9.4.5)Type "help" for help. postgres=# postg ...
- 找区间连续值(HDU5247)
找连续数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- poj: 1207
好吧这题竟然还有先大后小的可能,能不这么恶心下吗.. #include <iostream> #include <stdio.h> #include <string.h& ...
- 每天一个shell知识--数组
1.shell中数组的定义: 数组名=(value value1 value2 ) 也可以单独的设定数组的分量: arrayL[0]=value arrayL[1]=value1 2.${arrayL ...
- android中的命令安装与卸载
软件的安装: adb install apk的保存地址 卸载软件: adb uninstall package名