首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >格路回忆录

格路回忆录
EN

Stack Overflow用户
提问于 2012-09-17 07:02:48
回答 1查看 2.9K关注 0票数 0

我试图用动态规划方法来解决格点路径问题。

从22栅格的左上角开始,右下角有6条路线(没有回溯)。

在2020年电网中有多少条路线?

这是我为解决这个问题而写的代码。我哪里出错了。我好像每次都出错了。我是否跨越了变量数据类型的某些边界?

代码语言:javascript
复制
#include <stdio.h>
int count = 0;
int limita,limitb;
long long int cache[20][20];
unsigned long long int start(int a,int b)
{
    unsigned int long long i = 0;
    if(a == limita && b == limitb)
        return 1;
    if(cache[a][b] != -1)
        return cache[a][b];
    if(a != limita)
        i += start(a+1, b);
    if(b != limitb)
        i += start(a, b+1);
    cache[a][b] = i;
    return i;
}
int main(void)
{
    limita = limitb = 19;
    int i,j;
    for(i = 0; i < 20; i++)
        for(j = 0; j <20;j++)
            cache[i][j] = -1;
    unsigned long long int number = start(0,0);
    printf("The number of ways to reach the end is %llu\n",number);
    return 0;
}

请帮帮我

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-17 07:37:57

大小为1*1的网格:

代码语言:javascript
复制
    0    1
   0+-----+
    |     |
    |     |
   1+-----+
    |<-2->|

尺寸为2*2的网格:

代码语言:javascript
复制
    0    1    2
   0+----+----+
    |    |    |
    |    |    |
   1+----+----+
    |    |    |
    |    |    |
   2+----+----+
    |<---3--->|

..。

你的算法似乎没问题,但你把边数错了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12454473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档