dp求解道路条数
帕秋莉掌握了一种木属性魔法 这种魔法可以生成一片森林(类似于迷阵),但一次实验时,帕秋莉不小心将自己困入了森林 帕秋莉处于地图的左下角,出口在地图右上角,她只能够向上或者向右行走 现在给你森林的地图,保证可以到达出口,请问有多少种不同的方案 答案对2333取模
第一行两个整数m , n表示森林是m行n列
接下来m行,每行n个数,描述了地图
0 - 空地
1 - 树(无法通过)
链接:https://ac.nowcoder.com/acm/problem/53675
输出描述:
一个整数表示答案
示例1
输入
3 3 0 1 0 0 0 0 0 0 0
输出
3
注意地图有坑!!
#include<bits/stdc++.h> using namespace std; int n,m; bool Map[3001][3001]; int YHT[3001][3001]; 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 main() { read(m); read(n); for(int i=n;i>=1;i--) { for(int j=1;j<=n;j++) read(Map[i][j]); } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(i==1&&j==1) YHT[i][j]=1; else if(i==1) { if(!Map[i][j]) YHT[i][j]=YHT[i][j-1]; else { YHT[i][j]=0; } } else if(j==1) { if(!Map[i][j]) YHT[i][j]=YHT[i-1][j]; else YHT[i][j]=0; } else { if(!Map[i][j]) YHT[i][j]=(YHT[i-1][j]+YHT[i][j-1])%2333; else { YHT[i][j]=0; } } } } printf("%d\n",YHT[m][n]); }

浙公网安备 33010602011771号