[第十一届蓝桥杯省赛C++B组]走方块 原创

算法标签:DP

题目简叙

在这里插入图片描述

思路

1.i== 2|| j==2不可走
2.边缘初始化一步
3.当前位子的可能等于左边和上边的数量之和:dp[i][j]=dp[i-1][j]+dp[i][j-1];

代码

#include<iostream>
#include<cstring>

using namespace std;

int main(){
    int n,m;
    cin>>n>>m;
    
    const int nlen=n,mlen=m;
    int res=0;
    
    int dp[nlen+10][mlen+10];
    memset(dp,0,sizeof dp);
    
    for(int i=1;i<=nlen;i++)
        for(int j=1;j<=mlen;j++){
            if(i % 2 == 0 && j % 2 == 0) continue;
            else if(i==1||j==1)dp[i][j]=1;    
            else dp[i][j]=dp[i-1][j]+dp[i][j-1];
        }
        
    cout<<dp[nlen][mlen];
    
    return 0;
}



AC截图

在这里插入图片描述

posted @   俺叫西西弗斯  阅读(0)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示