您的位置:首页 > 其它

蓝桥杯寒假训练一1009店与花

2018-02-10 20:59 197 查看
题目大意
话说大诗人李白,一生好饮。幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。

注意:答案是个整数。不要书写任何多余的内容。
题目思路:一开始自己想的是DFS自己也不会写
               只能去借鉴别的大神了
                后来我发现自己想的难了

                这应该算是 遍历树的所有结构 没有进行剪枝啥的(纯属自己的理解)

下面给代码#include<iostream>//1009
using namespace std;
int sum=0;//为了计数
int fun(int m,int n,int c)//m是花店的个数 n遇到花的个数 c为初始酒量
{
if(m>0)
fun(m-1,n,c*2);
if(n>0)
fun(m,n-1,c-1);
if(m==0&&n==1&&c==1)
sum++;//只有满足最后一家是 花时 并且酒量 最后为 1
return sum;
}
int main()
{
int cnt=fun(5,10,2);
cout<<cnt;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  寒假填空训练