Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
1260 yy034 鸣人与佐助 C++ 运行超时 1000 MS 300 KB 1007 2022-05-29 20:32:56

Tests(0/20):


#include <bits/stdc++.h> using namespace std; int a[205][205]; int x,y; int minn=2e5; int xx[4]={1,-1,0,0},yy[4]={0,0,1,-1}; void dfs(int s,int k){ if(a[x][y]==3){ minn=min(minn,s); return; } if(s>minn){ return; } else{ for(int i=0;i<4;i++){ int t1=x,t2=y; if(a[x+xx[i]][y+yy[i]]==2){ if(k>0){ a[x][y]=0; x+=xx[i];y+=yy[i]; dfs(s+1,k-1); x=t1;y=t2; a[x][y]=1; } } else if(a[x+xx[i]][y+yy[i]]>0){ a[x][y]=0; x+=xx[i];y+=yy[i]; dfs(s+1,k); x=t1;y=t2; a[x][y]=1; } } } } int main() { int n,m,k; cin>>n>>m>>k; char t; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>t; switch(t) { case '#': a[i][j]=2; break; case '+': a[i][j]=3; break; case '*': a[i][j]=1; break; case '@': x=i; y=j; break; } } } dfs(0,k); if(minn==2e5){ cout<<-1; } else{ cout<<minn; } return 0; }


测评信息: