社区讨论
赛场70 pts 问题在哪 ?
P11228[CSP-J 2024] 地图探险参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @m2pva5k6
- 此快照首次捕获于
- 2024/10/26 15:56 去年
- 此快照最后确认于
- 2024/10/26 16:10 去年
CPP
#include<bits/stdc++.h>
#define ll long long
#define re register
using namespace std;
ll T;
inline ll read(){
ll res=0ll,f=1;
char c;
for(;(c=getchar())<'0'||c>'9';c=='-'?f=-f:0);
while(c>='0' && c<='9') res=(res<<1) + (res<<3) + c-'0',c=getchar();
return res*f;
}
/*-----------------*/
int main(){
//freopen("explore.in","r",stdin);
//freopen("explore.out","w",stdout);
T=read();
while(T--)
{
ll n=read(),m=read(),k=read(),x=read(),y=read(),d=read(),ans=0;
char a[1005][1005];bool f[1005][1005];
for(int re i=1;i<=n;i++)
for(int re j=1;j<=m;j++) cin>>a[i][j],f[i][j]=true;
f[x][y]=false;
while(k--)
{
if(d==0)
{
if(a[x][y]=='.'&&a[x][y+1]=='.') y+=1,f[x][y]=false;
else d=(d+1)%4;
}
else if(d==1)
{
if(a[x][y]=='.'&&a[x+1][y]=='.') x+=1,f[x][y]=false;
else d=(d+1)%4;
}
else if(d==2)
{
if(a[x][y]=='.'&&a[x][y-1]=='.') y-=1,f[x][y]=false;
else d=(d+1)%4;
}
else if(d==3)
{
if(a[x][y]=='.'&&a[x-1][y]=='.') x-=1,f[x][y]=false;
else d=(d+1)%4;
}
}
for(int re i=1;i<=n;i++)
for(int re j=1;j<=m;j++) if(f[i][j]==false) ++ans;
cout<<ans<<"\n";
}
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...