为什么第一点会错?
查看原帖
为什么第一点会错?
573130
Luxingchen1221楼主2022/5/24 00:04
#include <bits/stdc++.h>
using namespace std;

int main(){
	char a[105][105];
	int i,j,b,m,k,n,x,y,o,p,s=0;
	cin>>n>>m>>k;
	for(i=0;i<n;i++) {
	a[0][i]=-1;
	a[i][0]=-1;}	
	for(i=2;i<=m;i++){
		cin>>x>>y;
	for(j=x-1;j<=x+1;j++){
	    for(b=y-1;b<=y+1;b++){
	        if(a[j][b]!=-1){
	            a[j][b]++;
	        }
	    }
	    if(a[x+2][y]!=-1) a[x+2][y]++;
	    if(a[x-2][y]!=-1) a[x-2][y]++;
	    if(a[x][y+2]!=-1) a[x][y+2]++;
	    if(a[x][y-2]!=-1) a[x][y-2]++;
	    if(a[x+1][y]!=-1) a[x+1][y]++;
	    if(a[x-1][y]!=-1) a[x-1][y]++;
	    if(a[x][y+1]!=-1) a[x][y+1]++;
	    if(a[x][y-1]!=-1) a[x][y-1]++;
	}
	}
	for(i=1;i<=k;i++){
		if(k==0){
			break;
		}
		cin>>o>>p;
		for(j=o-2;j<=o+2;j++){
			for(b=p-2;b<=p+2;b++){
				if(a[j][b]!=-1){
					a[j][b]++;
				}
			}
		}
	}
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			if(a[i][j]==0){
				s++;
			}
		}
	}
	cout<<s;
return 0;
}

我自己看了一下,总是是第一个出红,这是为什吗? 思路是没问题的。

2022/5/24 00:04
加载中...