80求助
查看原帖
80求助
1832226
yuhe1012楼主2025/8/29 07:47
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<vector>
#include<iomanip>
#include<set>
#include<string>
using namespace std;
int main() {
	int n,m,k,s=0;
	cin>>n>>m>>k;
	int a[n][n];
	for(int i=0;i<n;i++) {
		for(int k=0;k<n;k++) {
			a[i][k]=0;
		}
	}
	for(;m>0;m--) {
		int x,y,X,Y;
		cin>>X>>Y;
		x=X-1;
		y=Y-1;
		if(x-2>=0&&x-2<=n&&y>=0&&y<=n) {
			a[x-2][y]=1;
		}
		if(x-1>=0&&x-1<=n&&y-1>=0&&y-1<=n) {
			a[x-1][y-1]=1;
		}
		if(x-1>=0&&x-1<=n&&y>=0&&y<=n) {
			a[x-1][y]=1;
		}
		if(x-1>=0&&x-1<=n&&y+1>=0&&y+1<=n) {
			a[x-1][y+1]=1;
		}
		if(x>=0&&x<=n&&y-2>=0&&y-2<=n) {
			a[x][y-2]=1;
		}
		if(x>=0&&x<=n&&y-1>=0&&y-1<=n) {
			a[x][y-1]=1;
		}
		a[x][y]=1;
		if(x>=0&&x<=n&&y+1>=0&&y+1<=n) {
			a[x][y+1]=1;
		}
		if(x>=0&&x<=n&&y+2>=0&&y+2<=n) {
			a[x][y+2]=1;
		}
		if(x+1>=0&&x+1<=n&&y-1>=0&&y-1<=n) {
			a[x+1][y-1]=1;
		}
		if(x+1>=0&&x+1<=n&&y>=0&&y<=n) {
			a[x+1][y]=1;
		}
		if(x+1>=0&&x+1<=n&&y+1>=0&&y+1<=n) {
			a[x+1][y+1]=1;
		}
		if(x+2>=0&&x+2<=n&&y>=0&&y<=n) {
			a[x+2][y]=1;
		}
	}
	for(;k>0;k--) {
		int x,y,X,Y;
		cin>>X>>Y;
		x=X-1;
		y=Y-1;
		if(x+2>=0&&x-2<=n&&y-2>=0&&y-2<=n) {
			a[x-2][y-2]=1;
		}
		if(x-2>=0&&x-2<=n&&y-1>=0&&y-1<=n) {
			a[x-2][y-1]=1;
		}
		if(x-2>=0&&x-2<=n&&y>=0&&y<=n) {
			a[x-2][y]=1;
		}
		if(x-2>=0&&x-2<=n&&y+1>=0&&y+1<=n) {
			a[x-2][y+1]=1;
		}
		if(x-2>=0&&x-2<=n&&y+2>=0&&y+2<=n) {
			a[x-2][y+2]=1;
		}
		
		if(x-1>=0&&x-1<=n&&y-2>=0&&y-2<=n) {
			a[x-1][y-2]=1;
		}
		if(x-1>=0&&x-1<=n&&y-1>=0&&y-1<=n) {
			a[x-1][y-1]=1;
		}
		if(x-1>=0&&x-1<=n&&y>=0&&y<=n) {
			a[x-1][y]=1;
		}
		if(x-1>=0&&x-1<=n&&y+1>=0&&y+1<=n) {
			a[x-1][y+1]=1;
		}
		if(x-1>=0&&x-1<=n&&y+2>=0&&y+2<=n) {
			a[x-1][y+2]=1;
		}
		if(x>=0&&x<=n&&y-2>=0&&y-2<=n) {
			a[x][y-2]=1;
		}
		if(x>=0&&x<=n&&y-1>=0&&y-1<=n) {
			a[x][y-1]=1;
		}
		a[x][y]=1;
		if(x>=0&&x<=n&&y+1>=0&&y+1<=n) {
			a[x][y+1]=1;
		}
		if(x>=0&&x<=n&&y+2>=0&&y+2<=n) {
			a[x][y+2]=1;
		}
		if(x+1>=0&&x+1<=n&&y-2>=0&&y-2<=n) {
			a[x+1][y-2]=1;
		}
		if(x+1>=0&&x+1<=n&&y-1>=0&&y-1<=n) {
			a[x+1][y-1]=1;
		}
		if(x+1>=0&&x+1<=n&&y>=0&&y<=n) {
			a[x+1][y]=1;
		}
		if(x+1>=0&&x+1<=n&&y+1>=0&&y+1<=n) {
			a[x+1][y+1]=1;
		}
		if(x+1>=0&&x+1<=n&&y+2>=0&&y+2<=n) {
			a[x+1][y+2]=1;
		}
		if(x+2>=0&&x+2<=n&&y-2>=0&&y-2<=n) {
			a[x+2][y-2]=1;
		}
		if(x+2>=0&&x+2<=n&&y-1>=0&&y-1<=n) {
			a[x+2][y-1]=1;
		}
		if(x+2>=0&&x+2<=n&&y>=0&&y<=n) {
			a[x+2][y]=1;
		}
		if(x+2>=0&&x+2<=n&&y+1>=0&&y+1<=n) {
			a[x+2][y+1]=1;
		}
		if(x+2>=0&&x+2<=n&&y+2>=0&&y+2<=n) {
			a[x+2][y+2]=1;
		}
	}
	for(int i=0;i<n;i++) {
		for(int h=0;h<n;h++) {
			if(a[i][h]==0) {
				s++;
			}
		}
	}
	cout<<s;
	return 0;
}

第二个测试点过不了,但我下载的数据输出是2,我在dev c++上输出也是2啊,不知道哪有问题

2025/8/29 07:47
加载中...