P11228 [CSP-J 2024] 地图探险(官方数据)
1 #include<bits/stdc++.h> 2 using namespace std; 3 int t,n,m,k,x,y,d; //d=0 东,d=1 南,d=2西,d=3北。 4 int dx[4]= {0,1,0,-1}; 5 int dy[4]= {1,0,-1,0}; 6 char s[1001][1001]; 7 int main() { 8 cin>>t; 9 while(t--) { 10 cin>>n>>m>>k; 11 cin>>x>>y>>d; 12 for(int i=1; i<=n; i++) cin>>s[i]+1; 13 int cnt=1; 14 s[x][y]='-';//表示去过 15 for(int i=1; i<=k; i++) { 16 int xx=dx[d]+x; 17 int yy=dy[d]+y; 18 if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&(s[xx][yy]=='.'||s[xx][yy]=='-')) { 19 x=xx; 20 y=yy; 21 if(s[xx][yy]=='.') { 22 s[xx][yy]='-'; 23 cnt++; 24 } 25 } else { 26 d=(d+1)%4; 27 } 28 } 29 cout<<cnt<<endl; 30 } 31 return 0; 32 }