gao13950259595 @ 2024-10-27 19:58:12
#include <bits/stdc++.h>
using namespace std;
long long t , n , m , k;
long long x , y , d ;
long long dx[15] = { 0 , 1 , 0 , -1};
long long dy[15] = { 1 , 0 , -1 , 0};
long long cnt [1005][1005];
string s[1005];
bool in(long long x , long long y ){
return !(x < 0 || x >= n || y < 0 || y >= m );
}
void f(long long x , long long y ,long long k){
if(k == 0){
return ;
}
k--;
long long tx = x + dx[d] , ty = y + dy[d];
if(in(tx , ty) && s[tx][ty] == '.'){
cnt[x][y] ++;
x += dx[d];
y += dy[d];
cnt[x][y] ++;
}else {
d = (d + 1) % 4;
// cout << d << ' ';
}
f(x , y ,k );
}
int main() {
// freopen("dxplore.in", "r", stdin);
// freopen("dxplore.out", "w", stdout);
cin >> t ;
while(t--){
cin >> n >> m >> k;
cin >> x >> y >> d;
x--;
y--;
for(int i = 0 ; i < n ;i++){
cin >> s[i];
}
// cout << in(1,2);
f(x , y , k);
long long ans = 0;
for(int i = 0 ; i < n ;i++){
for(int j = 0 ; j < m ;j++){
// cout << cnt [i][j];
if(cnt[i][j] != 0 ){
ans ++;
}
}
}
cout << ans << endl;
for(int i = 0 ; i < n ;i++){
for(int j = 0 ; j < m ;j++){
cnt[i][j] = 0;
}
}
}
return 0;
}
求助
by lmq308270 @ 2024-10-27 20:09:29
cnt[x][y]++;的位置写错了