全部评论 3

  • TLE这块/。

    2025-10-05 来自 上海

    0
  • AC代码

    2025-10-05 来自 上海

    0
  • #include <bits/stdc++.h>
    
    using namespace std;
    
    const long long N = 1e3 + 10;
    char g[N][N];    // <-----------------------------------你为什么开long long 存地图??
    int vis[N][N];
    long long dx[] = {0 , 1 , 0 , -1};
    long long dy[] = {1 , 0 , -1 , 0};
    
    int main( ) {
    	int T;
    	cin >> T;
    	
    	while (T--) {
    		long long n , m , k;
    		cin >> n >> m >> k;
    		long long x , y , d;
    		cin >> x >> y >> d;
    		
    		for (int i = 1 ; i <= n ; i++) for (int j = 1 ; j <= m ; j++) cin >> g[i][j];
    		memset(vis , 0 , sizeof (vis));
    		//------------------------------------------这里最好不要用ans直接算,经过的地方用vis存
    		vis[x][y] = 1;
    		while (k--) {
    			long long bx = x + dx[d];
    			long long by = y + dy[d];
    			
    			if (bx < 1 || bx > n || (by < 1) || by > m || g[bx][by] == 'x') {
    				d = (d + 1) % 4;
    			} else {
    				vis[bx][by]=1;
                    x=bx,y=by;
    			}
    			
    		}
            int ans=0;
    		for(int i=1;i<=n;i++){
                for(int j=1;j<=m;j++){    //------------------------------------像这样
                    if(vis[i][j]==1){
                        ans++;
                    }
                }
            }
            cout<<ans<<endl;
    	}
        
    	return 0;
    }
    

    2025-10-05 来自 上海

    0
暂无数据

提交答案之后,这里将显示提交结果~

首页