把m升水倒入n个桶中,可以有桶为空,问有多少种倒法
来源:互联网 发布:淘宝钻石展位图片 编辑:程序博客网 时间:2024/04/27 17:16
#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升的水
0 0
- 把m升水倒入n个桶中,可以有桶为空,问有多少种倒法
- 宜信笔试题 把m升水倒入n个杯子
- 代码解题之“*升水,有个*升,和*升的空桶,让你取出*升水”
- 给你m个东西,放在n个相同的盒子中(相同,即不计顺序),每个盒子可以放任意多,问有多少种放法
- usaco4.1.2 有N块长木板,希望得到M块短木板,问最多可以裁多少块短木板
- 面试题—有两个无刻度的水桶,分别能装7升水(记为A)和5升水(记为B),那么通过这两个桶可能获得多少升水
- N!中有多少个m
- C++求解:平面上有n个点,问总共可以组成多少条直线
- N个相同的元素分成M组(允许某些组为空),有多少种不同的分法?
- 【codeforces 727 C】【交互题 求原数组】【告诉你有一个长度为n序列,你可以问n个问题,每个问题为ai+aj等于多少,最后输出这个序列】
- C语言,有N个硬币面值为a[1]...a[N],给一个非负数m,用这些硬币凑成m,求有多少种方法?
- 将m个相同的苹果放进n个相同的盘子中,盘子允许空,有多少种方法
- 现有一个m * n的网格,从最左上角出发,每次只能向右或者向下移动一格,问有多少种不同的方法可以到达最右下角的格子
- 把m个球放到n个盒子里,有多少种方法 球盒问题,8种情况
- 有两个瓶子一个瓶承5升水一个瓶子成3升水,那怎么可以成四升水呢
- Educational Codeforces Round 8 E. Zbazi in Zeydabad(给你一个n*m矩阵,每个点可能是'.'或者'z',问有多少种Z子型(Z为一个正方形))
- 在容量为m的背包里,问有多少种不超过m的装包方式(多重背包+枚举统计)
- N对括号可以有多少种匹配排列方式
- 3.5判断出栈和入栈操作序列是否合法
- 上机作业7-2
- Tomcat——安装详解
- 剑指Offer算法精炼
- python 的 subprocess模块用法 popen
- 把m升水倒入n个桶中,可以有桶为空,问有多少种倒法
- UIKit 性能调试
- Spring Aop 最简使用例子
- 网络编程总结TCP、UDP、URL编程
- 使用Navicat for Oracle工具连接oracle
- Tomcat——基本概念
- jeecg 按条件查询
- URL编程demo
- 随机森林算法的python实现