题意:略 用手机敲的代码真是泪流满面,终于过了 #include<iostream> using namespace std; int dp[110][110]; void solve(){ int i,j; memset(dp,0,sizeof(dp)); for(i=1;i<=15;i++) for(j=1;j<=15;j++){ if(i==1||j==1) dp[i][j]=1; else if(i==j) dp[i][j]=dp[i][j-1]+1; else if(j&…
问题:把M个相同的苹果放在N个相同的盘子里.同意有的盘子空着不放,问共同拥有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 例子 : 1 7 3 ---------------8 5 5---------------7 思路: 当m>n时候 dp(m,n) 能够理解由  在每一个盘子里放一个苹果后剩下的再任意放入n个盘子dp(m-n,n)的状态+最少一个盘子不放dp(m,n-1) 当m==n时,此时分两种情况讨论.一种是一个盘子里放一个,仅仅是一种,另外一种是,至少有一个盘…
666:放苹果 总时间限制:  1000ms     内存限制:  65536kB 描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 输入 第一行是测试数据的数目t(0 <= t <= 20).以下每行均包含二个整数M和N,以空格分开.1<=M,N<=10. 输出 对输入的每组数据M和N,用一行输出相应的K. 样例输入 1 7 3 样例输出 8 分析: 放苹果,仔细看,恩递推,再仔细看,好像…
详细的解释放苹果问题的链接:苹果可相同可不同,盘子可相同可不同,盘子可空和不可空,都有详细的说明··· http://www.cnblogs.com/celia01/archive/2012/02/19/2358673.html 不赘述:这里的代码是递归,记忆化搜索,避免重复计算某些数的值``` #include <cstdio> #include <cstring> #define N 50 int d[N][N]; int dfs(int x,int y)//x个苹果放入y个盘…
放苹果(DP做法) 描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法.输入第一行是测试数据的数目t(0 <= t <= 20).以下每行均包含二个整数M和N,以空格分开.1<=M,N<=10.输出对输入的每组数据M和N,用一行输出相应的K. 样例输入 1 7 3 样例输出 8 #include <stdio.h> ][]; using namespace std; int main…
题目: http://poj.org/problem?id=1664 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…
这篇博客可能字数比较多,而且很难讲清楚,我会努力给你们讲清楚: 首先,放苹果是一道DP,之所以难,是因为很难想到,我的确有同学用三维数组做出来,然而三维的的确比二维好理解,但三维复杂度太高,虽然DP一般数据都给的不大,但复杂度低的算法才是好算法,所以接下来我会给讲一个二维的放苹果的思路: 首先,我们用f[i][j]来代表i个苹果放在j个盘子里,然后就可以推知当i=1或i=0或j=1时f[i][j]=1: 当然,这是必然的: 那么对于复杂的f[i][j]我们可以推知:当盘子数大于苹果数的时候,一定…
递推题目系列之三放苹果 Time Limit: 2000/1000ms (Java/Others) Problem 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…
这题其实在2.6前面的专题也有出现过,我还以为我有写,结果发现,并没有.于是就现在写了.这2题其实重复了......我就按放苹果的来说. 题意:把N个苹果放在M个盘子里,允许有的盘子空着不放,问共有多少种不同的分法. 解法:f[i][j]表示把 i 个苹果放在 j 个盘子的方案数,分有空盘子和无空盘子的情况DP. (1)至少有1个空盘子:f[i][j]=f[i][j-1] (2)没有空盘子:i≥j,则再 +f[i-j][j].         而对于f[i-j][j]有 2 种理解--所有盘子中…
666:放苹果 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. 输入 第一行是测试数据的数目t(0 <= t <= 20).以下每行均包含二个整数M和N,以空格分开.1<=M,N<=10. 输出 对输入的每组数据M和N,用一行输出相应的K. 样例输入 1 7 3 样例输出 8 来源 lwx@POJ #inc…