考虑了横纵,但是斜着的呢?
by 安好en @ 2019-06-26 10:21:57
```
#include<bits/stdc++.h>
using namespace std;
int n,m,r,ans,xxx,yyy;
bool vis[105][105],b[105][105];
int movx[10]={0,1,-1,0,1,1,-1,-1};
int movy[10]={1,0,0,-1,1,-1,1,-1};
void dfs(int x,int y){
for(int i=0;i<=7;i++){
int xx=movx[i]+x;
int yy=movy[i]+y;
//cout<<x<<" "<<y<<endl;
if(xx>=1&&yy>=1&&xx<=n&&yy<=n&&b[xx][yy]==false&&sqrt(pow(xx-xxx,2)+pow(yy-yyy,2))<=r){
b[xx][yy]=vis[xx][yy]=true;//有可能三圆相切产生到不了的空隙
dfs(xx,yy);
}
}
}
int main(){
cin>>n>>m>>r;
for(int i=1;i<=m;i++){
memset(b,false,sizeof b);
cin>>xxx>>yyy;
vis[xxx][yyy]=true;
dfs(xxx,yyy);
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(vis[i][j]==true)ans++;
}
}
cout<<ans;
return 0;
}
```
by yangchenxiao @ 2020-01-20 21:30:01