zoukankan      html  css  js  c++  java
  • dp迷宫方案数

    链接:https://ac.nowcoder.com/acm/contest/2272/B
    来源:牛客网

    赛时提示:保证出发点和终点都是空地

    帕秋莉掌握了一种木属性魔法
    这种魔法可以生成一片森林(类似于迷阵),但一次实验时,帕秋莉不小心将自己困入了森林

    帕秋莉处于地图的左下角,出口在地图右上角,她只能够向上或者向右行走

    现在给你森林的地图,保证可以到达出口,请问有多少种不同的方案

    答案对2333取模

    输入描述:

    第一行两个整数m , n表示森林是m行n列
    接下来m行,每行n个数,描述了地图
    0 - 空地
    1 - 树(无法通过)

    输出描述:

    一个整数表示答案
    示例1

    输入

    复制
    3 3
    0 1 0
    0 0 0
    0 0 0

    输出

    复制
    3




    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int maxn=5e3+100;
    typedef long long ll;
    template<class T>inline void read(T &res)
    {
    char c;T flag=1;
    while((c=getchar())<'0'||c>'9')if(c=='-')flag=-1;res=c-'0';
    while((c=getchar())>='0'&&c<='9')res=res*10+c-'0';res*=flag;
    }
    int mp[maxn][maxn];
    int dp[maxn][maxn];
    int mod=2333;
    int n,m;
    int main(){
        read(n),read(m);
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                scanf("%d",&mp[i][j]);
            }
        }
        dp[n][1]=1;
        for(int i=n;i>=1;i--){
            for(int j=1;j<=m;j++){
                if(i==n&&j==1){
                    continue;
                }
                if(mp[i][j]==1){
                    dp[i][j]=0;
                }
                else
                    dp[i][j]=(dp[i+1][j]+dp[i][j-1])%mod;
            }
        } 
        cout<<dp[1][m]%mod<<endl;
    }
  • 相关阅读:
    小丑火棘
    凤尾竹
    红王子锦带
    吊兰
    清香木
    鸢尾
    夏鹃
    牡丹吊兰
    美人蕉
    粉花绣线菊
  • 原文地址:https://www.cnblogs.com/lipu123/p/14286993.html
Copyright © 2011-2022 走看看