#include<iostream>
#include<cstdio>
#include<string.h>
using namespace std;
int vis[20];int sum=0;
void DFS(int hua ,int dian ,int jiu,int i ) //花,店,酒,当前坐标
{
if(i==14&&hua==9&&dian==5&&jiu==1) //注意结束条件,不是15
{
sum++;
return;
}
/*
if(i==14){
if(hua==9&&dian==5&&jiu==1){
sum++;
}
return;
*/
if(jiu<0||dian>5||hua>10)
return ;
if(!vis[i])
{
vis[i]=1;
DFS(hua+1,dian,jiu-1,i+1);
DFS(hua,dian+1,jiu*2,i+1);
vis[i]=0;
}
return ;
}
int main()
{
memset(vis,0,sizeof(vis));
DFS(0,0,2,0) ;
printf("%d",sum);
return 0;
}
第五届李白打酒
最新推荐文章于 2017-04-07 21:29:48 发布