mengmeng123456 @ 2024-10-26 22:02:03
#include<bits/stdc++.h>
using namespace std;
int t;
int mk[1005][1005];
int main(){
// ios::sync_with_stdio(0);
cin>>t;
while(t--){
int x,y,d;
int n,m,k;
cin>>n>>m>>k;
cin>>x>>y>>d;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
mk[i][j]=0;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
char c;
cin>>c;
if(c=='x'){
mk[i][j]=1;
}
}
}
int ans=0;
for(int i=1;i<=k;i++){
if(mk[x][y]!=2){
ans++;
}
mk[x][y]=2;
if(d==0){
y++;
}
if(d==1){
x++;
}
if(d==2){
y--;
}
if(d==3){
x--;
}
if(x<0||x>n||y<0||y>m||mk[x][y]==1){
if(d==0){
y--;
}
if(d==1){
x--;
}
if(d==2){
y++;
}
if(d==3){
x++;
}
d++;
d%=4;
}
}
if(mk[x][y]!=2){
ans++;
}
mk[x][y]=2;
cout<<ans<<"\n";
}
return 0;
}
by linrun0504 @ 2024-10-26 22:03:49
@mengmeng123456
不是到你是不是重复计算了一个点?
求回关
by mengmeng123456 @ 2024-10-26 22:05:07
@linrun0504 标记了,应该不是
by linrun0504 @ 2024-10-26 22:13:41
@mengmeng123456 你这个样例输出的是8
1
1 5 10
1 1 2
....x
by linrun0504 @ 2024-10-26 22:17:05
@mengmeng123456
我想发题解!!!
你看看
by mengmeng123456 @ 2024-10-26 22:17:31
@linrun0504 emmmmmmm
by mengmeng123456 @ 2024-10-26 22:32:47
@linrun0504 我唐完了
by mengmeng123456 @ 2024-10-26 22:33:13
@linrun0504 判断的时候写成x<0和y<0了