CF2056A,test3RE。救救我
  • 板块学术版
  • 楼主Gavinzhou
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/25 10:58
  • 上次更新2025/1/25 15:33:55
查看原帖
CF2056A,test3RE。救救我
1320771
Gavinzhou楼主2025/1/25 10:58

CF2056A

在线等

代码:

#include <iostream>
#include <vector>
using namespace std;

const int MAXN = 1005;
bool grid[MAXN][MAXN];

bool is(int x, int y) {
    return x >= 0 && y >= 0 && x < MAXN && y < MAXN;
}
int calculate() {
    int ans= 0;
    for (int i = 0; i < MAXN; i++) {
        for (int j = 0; j < MAXN; j++) {
            if (grid[i][j]) {
                if (!is(i - 1, j) || !grid[i - 1][j]) {
                    ans++;
                }
                if (!is(i + 1, j) || !grid[i + 1][j]) {
                    ans++;
                }
                if (!is(i, j - 1) || !grid[i][j - 1]) {
                    ans++;
                }
                if (!is(i, j + 1) || !grid[i][j + 1]) {
                    ans++;
                }
            }
        }
    }
    return ans;
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        int n, m;
        cin >> n >> m;
        for (int i = 0; i < MAXN; i++) {
            for (int j = 0; j < MAXN; j++) {
                grid[i][j] = false;
            }
        }
        int lastx = 0, lasty=0;
        for (int i = 0; i < n; i++) {
            int x, y;
            cin >> x >> y;
            lastx += x;
            lasty += y;
            for (int a = lastx; a < lastx + m; a++) {
                for (int b = lasty; b < lasty + m; b++) {
                    grid[a][b] = true;
                }
            }
        }
        cout <<calculate() << endl;
    }
    return 0;
}





提交结果

2025/1/25 10:58
加载中...