社区讨论

和标答思路一模一样,能过样例,但是只过一个点其他tl

P1789【Mc生存】插火把参与者 3已保存回复 8

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
8 条
当前快照
1 份
快照标识符
@lobeqc43
此快照首次捕获于
2023/10/29 19:48
2 年前
此快照最后确认于
2023/11/04 01:24
2 年前
查看原帖
CPP
#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;
}

回复

8 条回复,欢迎继续交流。

正在加载回复...