酒壶有酒2斗,逢店加一倍,遇花喝一斗。共遇店5次,遇花10次。已知最后一次遇到的
是花,正好把酒喝光。
是花,正好把酒喝光。
可以把遇店记为a,遇花记为b。则:babaabbabbabbbb就是合理的次序。像这样的答案一共有多少呢?
//回溯法
#include<stdio.h>
int count=0;//???
int shop,flower,wine;
void backtrack(int t)
{
if(t==14)
{
if(shop==5 && flower==9 && wine==1)//最后一次一定遇到花,故当flower=9,wine=1时即可return
count++;
return;
}
else
{
//遇店
shop++;wine=wine*2;
backtrack(t+1);
shop--;wine=wine/2;
//遇花
flower++;wine--;
backtrack(t+1);
flower--;wine++;
}
}
void main ()
{
wine=2;flower=0;shop=0;
backtrack(0);
printf("%d\n",count);
}