http://acm.hdu.edu.cn/showproblem.php?pid=2323
把六边形抽象成坐标进行dp,抽象出的坐标关系必须满足六边形之间的关系。很有趣的一道dp
#include <iostream> using namespace std ; int dp[25][25][25] ; int main() { dp[0][7][7]=1 ; for(int i=1 ;i<=14 ;i++) { for(int j=0 ;j<=14 ;j++) { for(int k=0 ;k<=14 ;k++) dp[i][j][k]=dp[i-1][j-1][k]+dp[i-1][j+1][k]+dp[i-1][j][k-1]+dp[i-1][j][k+1]+dp[i-1][j-1][k-1]+dp[i-1][j+1][k+1] ; } } int t ; scanf("%d",&t) ; while(t--) { int n ; scanf("%d",&n) ; printf("%d\n",dp[n][7][7]) ; } return 0 ; }