把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: 第一行是...

高斯线性函数

高斯线性用来处理空间线性平面,做法:f(x,y)与下面函数做卷积得到L(X,Y,t) t根据你的需要定用这个公式的优点:new structures must not be created when ...

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

把m升水倒入n个杯子,如7升水倒入3个杯子,511,421,331分配都可以。但是421和214,151和511之类的视为同一种分配方法。杯子可以放空,如700也算一种方法#include//把m升水...

vs的一个调试的程序

命令OutputDebugString 将要显示的东西输出到输出窗口 // project_fst.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #inc...
  • wsyxhwj
  • wsyxhwj
  • 2016年06月05日 10:09
  • 128

三个桶分八升水java版

三个桶分八升水java版三个桶分八升水java版 简介 代码 Appjava BucketStatusjava BucketWaterjava 简介最近在看《算法的乐趣》文中讲到经典算法三个桶分八升水...

【google apec 20151a, 1b, 1c】 七段码,找奇路径或环,切割矩形; n数填m空组合数,倒酒杯,三连扑克消除,第k括号序列;挖矿、+*计算器、俄罗斯方块

ROUND 1A A

m个苹果放在n个筐里,每个筐至少一个,所有的筐都一样,有多少种放法

m个苹果放在n个筐里,每个筐至少一个,所有的筐都一样,有多少种放法

怎么得到斐波那契数列?(m*n大小的矩形,从左上角走到左下角有多少种走法?包括一些引申题以及总结)

这是一道微软的面试题。看到这道timu

n个球m个不同的桶每个桶容量有限,求所有放置方法。

设dp[i][j]为使用仅仅第1,2,3...i个桶里放入j个球共有多少种放置方法。 当dp[i][j]中有空桶时,放置方法的数量为dp[i-1][j] 当dp[i][j]中没有空桶时...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:把m升水倒入n个桶中,可以有桶为空,问有多少种倒法
举报原因:
原因补充:

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