3 条题解

  • 0
    @ 2024-11-10 12:13:02

    不知道有什么难的······

    #include <iostream>
    #include <cstring>
    using namespace std;
    const int N = 1010;
    char mp[N][N];
    bool st[N][N];
    int dx[] = {0, 1, 0, -1}, dy[] = {1, 0, -1, 0};
    int main()
    {
    	int t;
    	cin >> t;
    	while(t --)
    	{
    		int n, m, k, x, y, d;
    		cin >> n >> m >> k >> x >> y >> d;
    		for(int i = 1;i <= n;i ++)
    			for(int j = 1;j <= m;j ++)
    				cin >> mp[i][j];
    		int ans = 1;
    		st[x][y] = true;
    		while(k --)
    		{
    			int a = x + dx[d], b = y + dy[d];
    			if(a >= 1 && a <= n && b >= 1 && b <= m && mp[a][b] == '.')
    			{
    				x = a, y = b;
    				if(!st[a][b])
    				{
    					ans ++;
    					st[a][b] = true;
    				}
    			}
    			else d = (d + 1) % 4;
    		}
    		cout << ans << endl;
    		memset(st, 0, sizeof(st));
    	}
    	return 0;
    }
    

    信息

    ID
    2314
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    (无)
    递交数
    47
    已通过
    20
    上传者