李白打酒(第五届蓝桥杯)
2017-04-06 19:17
183 查看
李白打酒
话说大诗人李白,一生好饮。幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。
dfs
话说大诗人李白,一生好饮。幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。
dfs
#include <cmath> #include <cstdio> #include <algorithm> #include <stack> #include <iostream> #include <cstring> using namespace std; int vist[15]; int s=2; char a[15]; int cnt=0; int dfs(int x,int f,int d,int s) { if(f>10||d>5||s<0) return 0; else if(f==10&&d==5&&x==15) { if(a[14]=='b'&&s==0) { cnt++; for(int i=0; i<15; i++) cout<<a[i]; cout<<endl; } } a[x]='a'; dfs(x+1,f,d+1,s*2); a[x]='b'; dfs(x+1,f+1,d,s-1); } int main() { dfs(0,0,0,2); cout<<cnt; }
相关文章推荐
- 山东省第五届蓝桥杯 ///标题:李白打酒//c/c++组
- 李白打酒-----第五届蓝桥杯
- 第五届蓝桥杯软件类省赛真题-JAVA-A-2_李白打酒
- 蓝桥杯第五届B组 李白打酒
- 2014第五届蓝桥杯预赛试题本科c++李白打酒
- 第五届蓝桥杯C++B组 李白打酒
- 2014年第五届蓝桥杯预赛题目之李白打酒
- 蓝桥杯_第五届_李白打酒
- 【蓝桥杯题目分析】2014年第五届——第三题:李白打酒
- (蓝桥杯第五届B组)李白打酒 DFS
- 2014年第五届蓝桥杯试题C/C++程序设计B组——李白打酒
- 第五届蓝桥杯A组java—李白打酒
- 李白打酒-第五届蓝桥杯c/c++B组
- 2015年第五届蓝桥杯预赛题目JAVA软件开发高职高专组李白打酒
- 第五届蓝桥杯【省赛试题3】李白打酒
- 2014年第五届蓝桥杯预赛部分题目—李白打酒
- 第五届蓝桥杯软件类省赛真题-Java高职-李白打酒
- 第五届蓝桥杯—李白打酒
- 第五届蓝桥杯 软件类省赛真题 第六题:李白打酒
- 第五届蓝桥杯初赛-李白打酒