您的位置:首页 > 其它

【蓝桥杯题目分析】2014年第五届——第三题:李白打酒

2015-04-07 21:06 337 查看
话说大诗人李白,一生好饮。幸好他从不开车。

一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:

无事街上走,提壶去打酒。

逢店加一倍,遇花喝一斗。

这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。

请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。

注意:通过浏览器提交答案。答案是个整数。不要书写任何多余的内容。

思路:

1.求方案个数比列举方案(涉及数据的存储,输出)更容易,一般求方案个数题都可以优先考虑dfs

2.15个点,店或花。DFS。

#include <stdio.h>

int count=0;
void dfs(int,int,int);
int main()
{
dfs(0,0,2);
printf("%d\n",count);
return 0;
}

void dfs(int store,int flow,int acho)	//遇到了多少店,遇到了多少花,还有多少酒
{
if(store>5||flow>9)return;	//注意不符合条件的情况的排除
if(store==5&&flow==9)
{
if(acho==1)
{
count++;
return;
}
else
return;
}

dfs(store+1,flow,acho*2);
dfs(store,flow+1,acho-1);
}


答案:14
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: