李白打酒
2017-01-14 17:18
267 查看
李白打酒
话说大诗人李白,一生好饮。幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。
注意:通过浏览器提交答案。答案是个整数。不要书写任何多余的内容。
题解:递归求解。
#include<cstdio>
int count = 0;
char a[15];
void fun(int wine,int store,int flower,int i)
{
if (store>5||flower>10)
return ;
else if (store==5&&flower==10&&i==15)
{
if (a[14]=='b'&&wine==0)
{
count++;
4000
}
return ;
}
a[i]='a';
fun(wine*2,store+1,flower,i+1);
a[i]='b';
fun(wine-1,store,flower+1,i+1);
}
int main()
{
fun(2,0,0,0);
printf("%d\n",count);
return 0;
}
话说大诗人李白,一生好饮。幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。
注意:通过浏览器提交答案。答案是个整数。不要书写任何多余的内容。
题解:递归求解。
#include<cstdio>
int count = 0;
char a[15];
void fun(int wine,int store,int flower,int i)
{
if (store>5||flower>10)
return ;
else if (store==5&&flower==10&&i==15)
{
if (a[14]=='b'&&wine==0)
{
count++;
4000
}
return ;
}
a[i]='a';
fun(wine*2,store+1,flower,i+1);
a[i]='b';
fun(wine-1,store,flower+1,i+1);
}
int main()
{
fun(2,0,0,0);
printf("%d\n",count);
return 0;
}
相关文章推荐
- 交换最少次数得到回文
- Ubuntu安装mysql
- sping
- 关于locate这个NB命令我不得不深入的学习
- 2 java数组总结
- 最短路计数 洛谷 1114 最短路
- 关于 handler 书写代码 引起的几个问题
- python基础语法(7) 函数2
- SQL Server ->> SQL Server 2016新特性之 --- Query Store
- MVC ---- T4模板的小练习
- 树莓派uboot的串口初始化(uboot驱动结构 2通用解析)
- PAT乙级1056
- 【matlab】isstrprop 解读
- UVA All in All 10340
- Android异步任务机制—AsyncTask
- 深入理解 Java G1 垃圾收集器
- poj 2728 Desert King (最优比率生成树)
- extern "c"用法解析
- [bzoj1002] [FJOI2007]轮状病毒轮状病毒(基尔霍夫矩阵)
- window下与Ubuntu14 虚拟机的samba共享