liruizhou_lihui @ 2024-11-05 11:50:31
不可以不计算起点最后答案
by liruizhou_lihui @ 2024-11-05 11:52:32
就像这个,你会拿到
#include<bits/stdc++.h>
using namespace std;
int t;
int cnt;
char a[1005][1005];
int vis[1005][1005];
int n,m,x,y,d,k;
int main()
{
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0);
cin>>t;
while(t--)
{
cnt=0;
cin>>n>>m>>k;
cin>>x>>y>>d;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
vis[i][j]=1;
}
}
// k++;
while(k--)
{
int X=x,Y=y;
if(d==0)
{
Y++;
}
else if(d==1)
{
X++;
}
else if(d==2)
{
Y--;
}
else if(d==3)
{
X--;
}
if(X>=1 && X<=n && Y>=1 && Y<=m && a[X][Y]=='.')
{
x=X;
y=Y;
}
else
{
d=(d+1)%4;
}
cnt+=vis[x][y];
vis[x][y]=0;
}
cout<<cnt+1<<'\n';
}
return 0;
}