HDU--杭电--2323--Honeycomb Walk--DP

原创 2013年12月02日 13:28:16

Honeycomb Walk

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 111    Accepted Submission(s): 69


Problem Description
A bee larva living in a hexagonal cell of a large honeycomb decides to creep for a walk. In each “step” the larva may move into any of the six adjacent cells and after n steps, it is to end up in its original cell.
Your program has to compute, for a given n, the number of different such larva walks.
 

Input
The first line contains an integer giving the number of test cases to follow. Each case consists of one line containing an integer n, where 1 ≤ n ≤ 14.
 

Output
For each test case, output one line containing the number of walks. Under the assumption 1 ≤ n ≤ 14, the answer will be less than 231 - 1.
 

Sample Input
2 2 4
 

Sample Output
6 90

题意就是像蜂巢那样的一个点与六个点相邻,从一个点开始走,走了n步之后回到远点的路线数

用三位数组来暴力DP,dp[i][j][k]代表的是走第i步走到坐标为(j,k)的点的方法数

#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
int dp[22][22][22]={0},xx[6][2]={{1,0},{0,1},{-1,0},{0,-1},{1,1},{-1,-1}};	//因为要回原点,所以最远也只会和原点相距14/2的距离,所以取(7,7)为原点(这个原点是随便去的)
void DP()
{
    int i,j,k,l,a,b;
    dp[0][7][7]=1;	//初始化
    for(i=1;i<=14;i++)	//最多14步
    for(j=0;j<=14;j++)	//遍历可到的全部坐标点
    for(k=0;k<=14;k++)
    for(l=0;l<6;l++)	//遍历相邻的各个方向
    dp[i][j][k]+=dp[i-1][j+xx[l][0]][k+xx[l][1]];
}
int main (void)
{
    int n,m,i,j,k,l;
    DP();
    scanf("%d",&n);
    while(n--&&scanf("%d",&m))
    {
        printf("%d\n",dp[m][7][7]);
    }
    return 0;
}

hdu--改革春风吹满地

改革春风吹满地 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...
  • qq_38749759
  • qq_38749759
  • 2017年12月09日 18:46
  • 29

hdu--最短路径问题--3790

最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S...
  • u010841344
  • u010841344
  • 2013年07月30日 23:52
  • 602

hdu--最小生成树之百岛湖

最短路prim的模板: 题目链接:点击打开链接 这个题有个坑的地方就是,并不是出现了距离小于10或者大于1000的两个岛就要输出oh!,有可能在构建最小生成树的时候并不用把它这条路加进去,只...
  • ACpartner
  • ACpartner
  • 2016年07月29日 09:26
  • 271

HDU--杭电--2102--A计划--深搜

A计划 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...
  • hncu1206401liuhao
  • hncu1206401liuhao
  • 2013年10月14日 23:55
  • 1276

HDU--杭电--1271--整数对--数学题(较难)

整数对 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...
  • hncu1206401liuhao
  • hncu1206401liuhao
  • 2013年11月25日 22:07
  • 870

HDU--杭电--3790--最短路径问题

最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot...
  • hncu1206401liuhao
  • hncu1206401liuhao
  • 2013年12月04日 23:27
  • 619

HDU--杭电--3293--sort--结构体排序

sort Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Sub...
  • hncu1206401liuhao
  • hncu1206401liuhao
  • 2013年07月30日 23:53
  • 529

HDU--杭电--2066--一个人的旅行--最短路

一个人的旅行 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot...
  • hncu1206401liuhao
  • hncu1206401liuhao
  • 2013年12月05日 00:07
  • 1384

HDU--杭电2844--Coins--背包,二进制压缩

Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota...
  • hncu1206401liuhao
  • hncu1206401liuhao
  • 2014年03月13日 10:35
  • 861

hdu--计算机学院大学生程序设计竞赛(2015’11)

 搬砖 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total S...
  • Inite
  • Inite
  • 2015年11月29日 23:09
  • 264
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU--杭电--2323--Honeycomb Walk--DP
举报原因:
原因补充:

(最多只允许输入30个字)