Grid 1

发布时间 2023-12-24 13:27:45作者: yufan1102

image

经典的过河卒问题,dp状态很好想,只需注意#不能发生转移即可

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e3+10;
const int mod=1e9+7;
char mp[N][N];
int dp[N][N];
void solve(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>mp[i][j];
		}
	}
	dp[1][1]=1;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(mp[i][j]=='#')continue;
			if(i-1>=1){
				dp[i][j]+=dp[i-1][j]%mod;
			}
			if(j-1>=1){
				dp[i][j]+=dp[i][j-1]%mod;
			}
		}
	}
	cout<<dp[n][m]%mod;
}
signed main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t=1;
	//cin>>t;
	for(int i=1;i<=t;i++)solve();
	return 0;
}