百度笔试9.20矩阵路径数目代码

用两个二维数组分别记录从左往右的前缀和,以及从上到下的前缀和,由此优化时间到O(N^2)

#include <bits/stdc++.h>
using namespace std;
#define N 2005

int dp[N][N];
int rowpre[N][N];
int colpre[N][N];
const int modval = 1e9 + 7;

int main(){
    dp[1][1] = 1;
    for(int i = 1; i <= 2000; ++i){
        for(int j = 1; j <= 2000; ++j){
            dp[i][j] += rowpre[i][j - 1] + colpre[i - 1][j];
            rowpre[i][j] = (dp[i][j] + (j - 2 > 0 ? rowpre[i][j - 2] : 0)) % modval;
            colpre[i][j] = (dp[i][j] + (i - 2 > 0 ? colpre[i - 2][j] : 0)) % modval;
        }
    }
    int t;
    cin >> t;
    int m, n;
    while(t--){
        cin >> m >> n;
        cout << dp[m][n] << endl;
    }
    return 0;
}
#百度##百度笔试##百度2023秋招笔试心得体会#
全部评论
hi~同学,秋招遇“寒气”,牛客送温暖啦!23届秋招笔面经有奖征集中,参与就得牛客会员7天免费体验,最高赢300元京东卡!戳我去看>>>https://www.nowcoder.com/link/zhengjipinglun
点赞 回复 分享
发布于 2022-09-22 10:27 北京
他说的走奇数步,如果1直接走到3,5,7,9步到下一个点这个还成立嘛,感觉这个是考虑每次走1步或者3步的情况
点赞 回复 分享
发布于 2022-09-21 19:33 黑龙江
能ac吗
点赞 回复 分享
发布于 2022-09-21 16:31 北京

相关推荐

吐泡泡的咸鱼:我也工作了几年了,也陆陆续续面试过不少人,就简历来说,第一眼学历不太够,你只能靠你的实习或者论文或者项目经历,然后你没有论文,没有含金量高的比赛和奖项,只能看实习和项目,实习来说,你写的实习经历完全不清楚你想找什么工作?行研?数据分析?且写的太少了,再看项目,这些项目先不说上过大学读过研究生的都知道很水,然后对你想找的岗位有什么帮助呢?项目和实习也完全不匹配啊,你好像在努力将你所有的经历都放在简历里想表现你的优秀,但是对于你想找的岗位来说,有什么用呢?最后只能获得岗位不匹配的评价。所以你需要明白你想要找的岗位要求是什么,是做什么的,比如产品经理,然后再看你的经历里有什么匹配的上这个岗位,或者对这个岗位以及这个岗位所在的公司有价值,再写到你的简历上
点赞 评论 收藏
分享
球Offer上岸👑:可能是大环境太差了 太卷了 学历也很重要 hc也不是很多 所以很难
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务