答案

袁振宁  •  1年前


#include<iostream>
#include<cstring>
usingnamespacestd;
intn,m,k;
intmc[105][105]={};
voidfire(intx,inty){
    for(inti=x-1;i<=x+1;i++){
        for(intj=y-1;j<=y+1;j++){
            if(i>0&&i<=n&&j>0&&j<=n){
                mc[i][j]=1;
            }
        }
    }
    if(x-2>0){
        mc[x-2][y]=1;
        
    }
    if(y+2<=n){
        mc[x][y+2]=1;
        
    }
    if(x+2<=n){
        mc[x+2][y]=1;
        
    }
    if(y-2>0){
        mc[x][y-2]=1;
        
    }
}
voidstone(intx,inty){
    for(inti=x-2;i<=x+2;i++){
        for(intj=y-2;j<=y+2;j++){
            if(i>0&&i<=n&&j>0&&j<=n){
                mc[i][j]=1;
            }
        }
    }
}
intmain(){
    
    cin>>n>>m>>k;
    for(inti=1;i<=m;i++){
        intx,y;
        cin>>x>>y;
        fire(x,y);
    }
    for(inti=1;i<=k;i++){
        intx,y;
        cin>>x>>y;
        stone(x,y);
    }
    intsum=0;
    for(inti=1;i<=n;i++){
        for(intj=1;j<=n;j++){
            if(mc[i][j]==0){
                sum++;
            }
        }
    }
    cout<<sum;


评论:

#include<iostream> 
#include<algorithm> 
#include<cstring> 
using namespace std; 
int main(){ 
int n,m,k,xi,yi,oi,pi,a[105][105]={},cnt=0; 
cin>>n>>m>>k; 
for(int i=1;i<=m;i++){ 
 cin>>xi>>yi; 
 for(int j=xi-1;j<=xi+1;j++){ 
  for(int h=yi-1;h<=yi+1;h++){ 
   a[j][h]=1; 
  } 
 } 
 a[xi-2][yi]=1; 
 a[xi+2][yi]=1; 
 a[xi][yi-2]=1; 
 a[xi][yi+2]=1; 

for(int i=1;i<=k;i++){ 
 cin>>oi>>pi; 
 for(int j=oi-2;j<=oi+2;j++){ 
  for(int h=pi-2;h<=pi+2;h++){ 
   a[j][h]=1; 
  } 
 } 

for(int i=1;i<=n;i++){ 
 for(int j=1;j<=n;j++){ 
  if(a[i][j]==0){ 
   cnt++; 
  } 
 } 

cout<<cnt; 
return 0; 
}


a1s2d3f4  •  1年前