和标答思路一模一样,能过样例,但是只过一个点其他tl
查看原帖
和标答思路一模一样,能过样例,但是只过一个点其他tl
596825
legend3366楼主2021/11/5 13:26
#include <stdio.h>
#include <math.h>
long int sb[300][300];
void huoba(int x, int y)
{
    x += 2;
    y += 2;
    for (int i = x - 2; i <= x + 2; i++)
    {
        sb[i][y] = 0;
    }
    for (int j = y - 2; j <= y + 2; j++)
    {
        sb[x][j] = 0;
    }
    sb[x + 1][y + 1] = 0;
    sb[x - 1][y + 1] = 0;
    sb[x + 1][y - 1] = 0;
    sb[x - 1][y - 1] = 0;
}

void yingshi(int x, int y)
{
    x += 2;
    y += 2;
    for (int i = x - 2; x <= x + 2; x++)
    {
        for (int j = y - 2; j <= y + 2; y++)
        {
            sb[i][j] = 0;
        }
    }
}

int main()
{

    int n, m, k, sum = 0;
    int x, y;
    scanf("%d", &n);

    for (int i = 3; i <= n + 2; i++)
    {
        for (int j = 3; j <= n + 2; j++)
        {
            sb[i][j] = 1;
        }
    }//赋值为1
    scanf("%d%d", &m, &k);
    for (int i = 1; i <= m; i++)
    {
        scanf("%d%d", &x, &y);
        huoba(x, y);
    }
    for (int i = 1; i <= k; i++)
    {
        scanf("%d%d", &x, &y);
        yingshi(x, y);
    }
    for (int i = 3; i <= n + 2; i++)
    {
        for (int j = 3; j <= n + 2; j++)
        {
            if(sb[i][j]==0)
            sum ++;
        }
    }
    printf("%d", n*n-sum);
    return 0;
}
2021/11/5 13:26
加载中...