poj 3036
题意:
黄蜂有多少种走法。
它在六边形格子中走 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; }