【蓝桥杯题目分析】2014年第五届——第三题:李白打酒
2015-04-07 21:06
337 查看
话说大诗人李白,一生好饮。幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。
注意:通过浏览器提交答案。答案是个整数。不要书写任何多余的内容。
思路:
1.求方案个数比列举方案(涉及数据的存储,输出)更容易,一般求方案个数题都可以优先考虑dfs
2.15个点,店或花。DFS。
答案:14
一天,他提着酒壶,从家里出来,酒壶中有酒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
相关文章推荐
- 【蓝桥杯题目分析】2014年第五届——第四题:史丰收速算
- 【蓝桥杯题目分析】2014年第五届——第一题:啤酒和饮料
- 2014年第五届蓝桥杯决赛C组题目 第三题 标题:日期差
- 2014年第五届蓝桥杯预赛题目之李白打酒
- 2014年第五届蓝桥杯预赛部分题目—李白打酒
- 【蓝桥杯题目分析】2014年第五届——第二题:切面条
- 2015年第五届蓝桥杯预赛题目JAVA软件开发高职高专组李白打酒
- 2014年第五届蓝桥杯预赛题目JAVA软件开发高职高专组4
- 2014年第五届蓝桥杯预赛部分题目—蚂蚁感冒
- 2014年第五届蓝桥杯决赛C组题目 第一题 标题:国王的遗产
- 2014年第五届蓝桥杯预赛题目JAVA软件开发高职高专组2
- 2014年第五届蓝桥杯试题C/C++程序设计B组——李白打酒
- 2014年第五届蓝桥杯预赛题目JAVA软件开发高职高专组9
- 2014年第五届蓝桥杯预赛题目JAVA软件开发高职高专组8
- 2014年第五届蓝桥杯预赛题目JAVA软件开发高职高专组核桃的数量
- 2014年第五届蓝桥杯c/c++本科B组切面条题目解读
- 2014年第五届蓝桥杯预赛题目JAVA软件开发高职高专组7
- 2014年第五届蓝桥杯预赛题目JAVA软件开发高职高专组3
- 2014年第五届蓝桥杯预赛题目JAVA软件开发高职高专组有理数类
- 两道相似题目的思考(蓝桥杯 第三届第四题/第五届第三题)