0分不知为什么
查看原帖
0分不知为什么
1097884
shuhao楼主2025/6/21 12:48

这为什么0分啊啊啊啊啊啊啊啊......

4WA,1RE

测试点

#include <iostream>
using namespace std;

bool vis[105][105];
int ans;

const int dx1[13] = {0, 0, 0, 0, 0,+1,+1,+1,-1,-1,-1,+2,-2};
const int dy1[13] = {0,+1,+2,-1,-2,-1, 0,+1,-1, 0,+1, 0, 0};

const int dx2[25] = {0, 0, 0, 0, 0,+1,+1,+1,+1,+1,-1,-1,-1,-1,-1,+2,+2,+2,+2,+2,-2,-2,-2,-2,-2};
const int dy2[25] = {0,+1,-1,+2,-2, 0,+1,-1,+2,-2, 0,+1,-1,+2,-2, 0,+1,-1,+2,-2, 0,+1,-1,+2,-2};

void add(int a, int b, bool op) {
	if (op) {
		for (int i = 0; i < 13; ++i) {
			int ca = a + dx1[i];
			int cb = b + dy1[i];
			if (!vis[ca][cb]) {
				vis[ca][cb] = 1;
				--ans;
			}
		}
	} else {
		for (int i = 0; i < 25; ++i) {
			int ca = a + dx2[i];
			int cb = b + dy2[i];
			if (!vis[ca][cb]) {
				vis[ca][cb] = 1;
				--ans;
			}
		}
	}
}

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	
	int n, m, k;
	cin >> n >> m >> k;
	ans = n * n;
	for (int i = 1; i <= m; ++i) {
		int x, y;
		cin >> x >> y;
		add(x, y, 1);
	}
	for (int i = 1; i <= k; ++i) {
		int x, y;
		cin >> x >> y;
		add(x, y, 2);
	}
	cout << ans << '\n';
	
	return 0;
}
2025/6/21 12:48
加载中...