有大佬帮帮我吗? 我人都傻了 QAQ
查看原帖
有大佬帮帮我吗? 我人都傻了 QAQ
319007
adehcby楼主2020/7/21 00:19

我的测试结果是1 4 5测试点AC,2 3测试点RE 我的代码

/*X增加是增加行
  Y增加是增加列
  */
#include <iostream>
int hb[20000][20000];
int main() {
    int n, m, k, x, y, ans = 0;
    std::cin >> n >> m >> k;
    for (int i = 2; i <= m + 1; i++) {
        std::cin >> x >> y;
        hb[x][y] = 2;
        hb[x + 1][y] = 1;
        hb[x + 2][y] = 1;
        hb[x - 1][y] = 1;
        hb[x - 2][y] = 1;
        hb[x][y + 1] = 1;
        hb[x][y + 2] = 1;
        hb[x][y - 1] = 1;
        hb[x][y - 2] = 1;
        hb[x - 1][y - 1] = 1;
        hb[x - 1][y + 1] = 1;
        hb[x + 1][y - 1] = 1;
        hb[x + 1][y + 1] = 1;
    }
    for (int i = m + 2; i <= m + k + 1; i++) {
        std::cin >> x >> y;
        for (int j = x - 2; j <= x + 2; j++) {
            for (int k = y - 2; k <= y + 2; k++) {
                hb[j][k] = 1;
            }
        }
        hb[x][y] = 2;
    }
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            if (hb[i][j] == 0) {
                ans++;
            }
        }
    }
    std::cout << ans << "\n";
    return 0;
}

然后我去看了评测记录,发现有个跟我思路一样的,这是他的代码

#include <iostream>
using namespace std;
int a[105][105], ans;
int main() {
	int n, m, k, x, y;
	cin >> n >> m >> k;
	while (m--) {
		cin >> x >> y;
		a[x][y] = 1;
		for (int i = 1; i <= 2; i++) {
			a[x - i][y] = 1;
			a[x][y + i] = 1;
			a[x][y - i] = 1;
			a[x + i][y] = 1;
		}
		a[x - 1][y - 1] = 1;
		a[x - 1][y + 1] = 1;
		a[x + 1][y - 1] = 1;
		a[x + 1][y + 1] = 1;
	}
	while (k--) {
		cin >> x >> y;
		x = x - 2, y = y - 2;
		for (int i = x; i < x + 5; i++) {
			for (int j = y; j < y + 5; j++) {
				a[i][j] = 1;
			}
		}
	}
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			if (!a[i][j]) ans++;
			//	cout<<a[i][j]<<' ';
		}
		//cout<<endl;
	}
	cout << ans << endl;
	return 0;
}

我和他的代码都在VSC测试了一遍,他的代码也跟我的一样,在第二个测试点输入的时候数组炸了,而他却AC了,而我那个测试点却RE了,有大佬看看我的代码有啥问题不?

2020/7/21 00:19
加载中...