94pts&#10WA求调
查看原帖
94pts&#10WA求调
784704
kevin4楼主2024/3/19 22:02
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,t,r1,c1,r2,c2,dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}},ans[101][101][16];
string a[101];
int dfs(int x,int y,int time){
	if(~ans[x][y][time])return ans[x][y][time];
	if(time==t&&x==r2&&y==c2){
		ans[x][y][time]=1;
		return 1;
	}
	if(time==t){
		ans[x][y][time]=0;
		return 0;
	}
	if(x==0||x==n+1||y==0||y==m+1||a[x][y]=='*'){
		ans[x][y][time]=0;
		return 0;
	}
	ans[x][y][time]=0;
	for(int i=0;i<4;i++){
		int nx=x+dir[i][0];
		int ny=y+dir[i][1];
		ans[x][y][time]+=dfs(nx,ny,time+1);
	}
	return ans[x][y][time];
}
signed main(){
	cin>>n>>m>>t;
	memset(ans,-1,sizeof(ans));
	for(int i=1;i<=n;i++){
		cin>>a[i];
		for(int j=n;j>0;j--){
			a[i][j]=a[i][j-1];
		}
	}
	cin>>r1>>c1>>r2>>c2;
	cout<<dfs(r1,c1,0)<<endl;
	return 0;
}
2024/3/19 22:02
加载中...