【AtCoder ABC 075 B】Minesweeper

【链接】 我是链接,点我呀:)
【题意】

在这里输入题意

【题解】

模拟,把#换成1 八个方向加一下就好。

【代码】

    #include <bits/stdc++.h>
    using namespace std;
     
    const int N = 50;
    const int dx[8] = { 1,1,1,0,0,-1,-1,-1 };
    const int dy[8] = { -1,0,1,-1,1,-1,0,1 };
     
    int a[N + 10][N + 10],h,w;
    string s;
     
    int main()
    {
    	/*freopen("F:\\rush.txt", "r", stdin);*/
    	cin >> h >> w;
    	for (int i = 1; i <= h; i++)
    	{
    		cin >> s;
    		for (int j = 1; j <= w; j++)
    		{
    			if (s[j - 1] == '#')
    				a[i][j] = 1;
    			else
    				a[i][j] = 0;
    		}
    	}
    	for (int i = 1;i <= h;i++)
    		for (int j = 1; j <= w; j++)
    		{
    			if (a[i][j] == 1)
    				putchar('#');
    			else
    			{
    				int num = 0;
    				for (int k = 0; k < 8; k++)
    				{
    					int tx = i + dx[k];
    					int ty = j + dy[k];
    					num += a[tx][ty];
    				}
    				printf("%d", num);
    			}
    			if (j == w)
    				puts("");
    		}
    	return 0;
    }
posted @ 2017-10-14 22:15  AWCXV  阅读(300)  评论(0编辑  收藏  举报