POJ 1664 放苹果
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 24985 | Accepted: 15908 | 
Description
Input
Output
Sample Input
1
7 3
Sample Output
8
Source


我写的代码自己写了几个测试数据集,都没有问题的。放到POJ上,死活跑不过,是不是格式化输出问题。诶,第一题,真悲催:
#include<stdio.h> int f(int m, int n)
{
int i,result; result=0; if(n<=0)
return 0; if((0==m) || (1==m) || (1==n))
return 1; for( i=m ; i>=m/2 && i>0 ; i-- )
{ if( (m-i) > i )
{
if( (n-1) > 1)
{
result=result+f(m-i,n-1)-1;
} break;
}
else
{
result=result+f(m-i,n-1);
}
} return result;
} int main(void)
{
int t,m,n; scanf("%d",&t); while(t--)
{
scanf("%d%d",&m,&n); if(n<=0)
{
printf("\n1");
}
else
{
printf("\n%d",f(m,n));
} } return 0; }
贴一个正确版本:
#include <stdio.h>
#include <stdlib.h> int f(int, int); int main()
{
int t, m, n, sum;
scanf("%d", &t);
while (t--)
{
scanf("%d%d", &m, &n);
sum = f(m, n);
printf("%d\n", sum);
}
system("pause");
return 0;
} /* m为剩余苹果数,n为剩余盘子数 */
int f(int m, int n)
{
/* 有些盘子不放苹果,已包含在f(m, n - 1)中,返回0*/
if (m < 0) return 0;
/* 刚好每个盘子放1个,只有一种情况 */
if (m == 0) return 1;
/* 只有1个盘子可以放,也只有全部放入这一种情况 */
if (n == 1) return 1;
/* n个盘子内至少都放1个 + 只放入n-1个盘子中 */
return f(m - n, n) + f(m, n - 1);
}
POJ 1664 放苹果的更多相关文章
- poj 1664 放苹果(递推)
		
题目链接:http://poj.org/problem? id=1664 放苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions ...
 - poj 1664 放苹果 递归
		
题目链接: http://poj.org/problem?id=1664 题目描述: 有n个苹果,m个盒子,盒子和苹果都没有顺序,盒子可以为空,问:有多少种放置方式? 解题思路: 当前有n个苹果,m个 ...
 - POJ 1664 放苹果 (递推思想)
		
原题链接:http://poj.org/problem?id=1664 思路:苹果m个,盘子n个.假设 f ( m , n ) 代表 m 个苹果,n个盘子有 f ( m , n ) 种放法. 根据 n ...
 - poj 1664放苹果(递归)
		
放苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37377 Accepted: 23016 Description ...
 - poj 1664 放苹果 (划分数)
		
题意:中文题目,不解释... 题解: 第一种方法是暴力深搜:枚举盘子1~n放苹果数量的所有情况,不需要剪枝:将每次枚举的情况,即每个盘的苹果数量,以字典序排序,然后存进set里 以此去重像" ...
 - poj 1664 放苹果(dfs)
		
放苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 30284 Accepted: 19098 Description ...
 - POJ 1664 放苹果 (递推)
		
题目链接:http://poj.org/problem?id=1664 dp[i][j]表示i个盘放j个苹果的方案数,dp[i][j] 可以由 dp[i - 1][j] 和 dp[i][j - i] ...
 - OpenJudge/Poj 1664 放苹果
		
1.链接地址: http://bailian.openjudge.cn/practice/1664 http://poj.org/problem?id=1664 2.题目: 总时间限制: 1000ms ...
 - POJ 1664 放苹果(递归或DP)
		
一.Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第一行是测试数据的数目t ...
 
随机推荐
- 【BestCoder】【Round#29】
			
T1 啊……a^b 与 c^d比较大小,我们可以两边取对数,转化成 log(a^b)=b*log(a) 和d*log(c) 这样就能直接算了……然后稍微搞一下精度什么的就A了=.= //BC #29 ...
 - WebStorm 9 注册码
			
UserName:William ===== LICENSE BEGIN ===== 45550-12042010 00001SzFN0n1bPII7FnAxnt0DDOPJA INauvJkeVJB ...
 - Finite State Machine
			
Contents [hide] 1 Description 2 Components 3 C# - FSMSystem.cs 4 Example Description This is a Dete ...
 - Unity3d修改FBX文件的动画名方法
			
问题描述:FBX文件导入Unity3d后的动画名字一般都是 “Take 001”并且无法修改!如何修改它呢? 解决方法:解决方法其实很简单,只要你按照Unity3d的FBX文件命名规则,压根就不会存在 ...
 - java基础知识回顾之javaIO类--管道流PipedOutputStream和PipedIutputStream
			
管道流(线程通信流):管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream).管道输入流(PipedInputStream),如果想要进行管道输出,则必须要把 ...
 - POJ 3280 Cheapest Palindrome(DP)
			
题目链接 题意 :给你一个字符串,让你删除或添加某些字母让这个字符串变成回文串,删除或添加某个字母要付出相应的代价,问你变成回文所需要的最小的代价是多少. 思路 :DP[i][j]代表的是 i 到 j ...
 - Java注解全面解析
			
1.基本语法 注解定义看起来很像接口的定义.事实上,与其他任何接口一样,注解也将会编译成class文件. @Target(ElementType.Method) @Retention(Retentio ...
 - Python中Lambda, filter, reduce and map 的区别
			
Lambda, filter, reduce and map Lambda Operator Some like it, others hate it and many are afraid of t ...
 - Intellij Idea 创建EJB项目入门(一)
			
相关软件: 1.JBoss(jboss-as-7.1.1.Final):http://jbossas.jboss.org/downloads 2.Intellij IDEA 13.02 3.JDK 1 ...
 - Mvc    Kissy uploader实现图片批量上传   附带瀑布流的照片墙
			
前言 KISSY 是由阿里集团前端工程师们发起创建的一个开源 JS 框架.它具备模块化.高扩展性.组件齐全,接口一致.自主开发.适合多种应用场景等特性.本人在一次项目中层使用这个uploader组件. ...