奇怪的问题
查看原帖
奇怪的问题
1463377
mmmkkk111楼主2024/12/26 14:00
#include<bits/stdc++.h>
using namespace std;
int dx[]={0,0,1,-1},dy[]={1,-1,0,0};
char ch[110][110];bool mark[110][110];
int dp[110][110][30];
int n,m,t,r1,c1,r2,c2;
int dfs(int T,int x,int y){
if(dp[T][x][y]!=-1)return dp[T][x][y];
if(abs(x-r2)+abs(y-c2)>t-T)return dp[T][x][y]=0;
if(T>t)return dp[T][x][y]=0;
if(T==t){
    if(x==r2&&y==c2)return dp[T][x][y]=1;
    else return dp[T][x][y]=0;
}
int sum=0;
for(int i=0;i<=3;i++)
if(x+dx[i]<=n&&x+dx[i]>=1&&y+dy[i]<=m&&y+dy[i]>=1&&!mark[x+dx[i]][y+dy[i]])
sum+=dfs(T+1,x+dx[i],y+dy[i]);
return dp[T][x][y]=sum;
return 0;
}
int main(){
memset(mark,0,sizeof(mark));
memset(dp,-1,sizeof(dp));
scanf("%d%d%d\n",&n,&m,&t);
for(int i=1;i<=n;i++)
{
    for(int j=1;j<=m;j++){
       
       scanf("%c",&ch[i][j]);
       if(ch[i][j]=='*')mark[i][j]=1;
    }
       getchar();
}
scanf("%d%d%d%d",&r1,&c1,&r2,&c2);
printf("%d",dfs(0,r1,c1));
    return 0;
}

之前用C语言习惯这么读字符串了,wa了4个点,下载之后本地测的都是对的,一直找不到原因,后来用C++string读入才能过,why?

2024/12/26 14:00
加载中...