把m升水倒入n个桶中,可以有桶为空,问有多少种倒法

原创 2016年06月05日 20:26:23


#include <iostream>
using namespace std;
int count;
void DPS2(int x1,int x2,int x3,int x4,int x5)
{
    if(x3>x4) return;
    for(int i=x5;i>=0;i--)
    {
        if(x1==x2&&x3+i==x4)
            count ++;
        else if(x1<x2)
            DPS2(x1+1,x2,x3+i,x4,i);
    }
}
void DPS(int x,int y)
{
    DPS2(0,y-1,0,x,x);
}
int main()
{
    count = 0;
    int m,n;
    cin >> m >> n;
    DPS(m,n);
    cout << count;
}
x1,x2,x3,x4,x5 分别表示当前算第x1个桶,共x2+1个桶,当前已经装了x3升水,共需要装x4升水,它前面的一个桶装了x5升水。


好复杂的样子,,只是因为  7,3   的时候,方案有

7,0,0

6,1,0

5,2,0,

5,1,1,

4,3,0

4,2,1

3,3,1

3,2,2

共7种方法,,5,1,1, 和1,1,5 算同一个。。所以  三个数间有大小排列的关系就可以排除那个情况了

所以设置了x5 表示左边那个桶装了多少升水,当前桶不能装超过x5升的水




m 升的水倒入 n 个相同的容器(容器无限大)

问题描述要把 m 升的水倒入 n 个相同的容器中(假设容器足够大),允许有的容器是空的,问共有多少种不同的倒法?(用k表示)5,1,1和1,5,1和 1,1,5 是同一种倒法。 Input: 第一行是...
  • coder_ken
  • coder_ken
  • 2016年03月31日 11:19
  • 1684

宜信笔试题 把m升水倒入n个杯子

把m升水倒入n个杯子,如7升水倒入3个杯子,511,421,331分配都可以。但是421和214,151和511之类的视为同一种分配方法。杯子可以放空,如700也算一种方法#include//把m升水...
  • yaoxingshuai
  • yaoxingshuai
  • 2016年03月29日 20:10
  • 2606

宜信笔试题 把m升水倒入n个杯子

把m升水倒入n个杯子,如7升水倒入3个杯子,511,421,331分配都可以。但是421和214,151和511之类的视为同一种分配方法。杯子可以放空,如700也算一种方法#include//把m升水...
  • yaoxingshuai
  • yaoxingshuai
  • 2016年03月29日 20:10
  • 2606

m 升的水倒入 n 个相同的容器(容器无限大)

问题描述要把 m 升的水倒入 n 个相同的容器中(假设容器足够大),允许有的容器是空的,问共有多少种不同的倒法?(用k表示)5,1,1和1,5,1和 1,1,5 是同一种倒法。 Input: 第一行是...
  • coder_ken
  • coder_ken
  • 2016年03月31日 11:19
  • 1684

图的m着色问题

图的m着色问题     给定无向连通图和m种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色。是否有一种着色法使G中每条边的两个顶点有不同的颜色。这个问题是图的m可着色判定问...
  • LDUtyk
  • LDUtyk
  • 2016年12月25日 16:32
  • 499

[ACM] POJ 1664 放苹果(n个相同小球放入m个相同盒子)

放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 25952   Accepted:...
  • sr19930829
  • sr19930829
  • 2014年07月30日 09:35
  • 2405

将m个相同的球全部放到n个相同的盒子里面有几种放法

盒子不能为空,所以可以当成将m-n个球放到n个盒子里,盒子可以为空。 比如将10个球放到5个盒子里,可以当成5个球放到5个盒子里,盒子能为空。接着,再分情况,将球分为 (5,0,0,0,0) (4,1...
  • wuyingzhiyi
  • wuyingzhiyi
  • 2015年03月24日 23:36
  • 2203

hdu2235 机器人的容器

题意: 机器人的容器 Time Limit: 3000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To...
  • u013761036
  • u013761036
  • 2014年04月15日 21:33
  • 453

【证明】放球问题

来源:百度百科放球问题是指把 n个球放到 m个盒子里的方案数。它是组合数学的一个非常重要的问题。根据球是否相同,盒子是否有区别,是否允许有空盒以及n与m 的大小关系,放球问题可分成 16 个子问题。 ...
  • zP1nG
  • zP1nG
  • 2017年11月19日 11:35
  • 64

蓝桥杯常用算法知识点:【递归】n个球中取m个,有多少种取法?

package com.aiqiongdiao; //n个球中取m个不放回,求有多少种取法? public class Main { public static int f(int n,int m...
  • qq_30258957
  • qq_30258957
  • 2016年03月14日 20:19
  • 1549
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:把m升水倒入n个桶中,可以有桶为空,问有多少种倒法
举报原因:
原因补充:

(最多只允许输入30个字)