袁振宁 • 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;
}