题意:
黄蜂有多少种走法。
它在六边形格子中走 n 步并且回到初始位置一共有多少种走法。
代码:
#include<iostream>
#include<fstream>
using namespace std;
int res[15][30][30];
void read(){
// ifstream cin("in.txt");
int i,j,k;
res[0][15][15]=1;
for(k=0;k<14;k++)
for(i=1;i<=29;i++)
for(j=1;j<=29;j++)
{
if(j>2) res[k+1][i][j-2]+=res[k][i][j];
if(j+2<=29) res[k+1][i][j+2]+=res[k][i][j];
if(i>1&&j>1) res[k+1][i-1][j-1]+=res[k][i][j];
if(i>1&&j<29) res[k+1][i-1][j+1]+=res[k][i][j];
if(i<29&&j>1) res[k+1][i+1][j-1]+=res[k][i][j];
if(i<29&&j<29) res[k+1][i+1][j+1]+=res[k][i][j];
}
cin>>k;
while(k--)
{
cin>>i;
cout<<res[i][15][15]<<endl;
}
}
int main(){
read();
return 0;
}