388cover
http://go.helloworldroom.com:50080/problem/388
这题让我们遍历每一个点,然后让我们看是否在圆内,判断在圆内就用它与最近的圆心之间的欧几里得距离(sqrt($a^2+b^2$))
再看一下数据范围:m<=n<=100
太好啦!我们不怕超时啦!
AC代码:
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
struct node{
int x,y;
};
double sqrt1(double a1,double b1){
return sqrt(a1*a1+b1*b1);
}
int main(){
int n,m,r;
cin>>n>>m>>r;
node a[m+1];
for(int i=1;i<=m;i++){
cin>>a[i].x>>a[i].y;
}
int b[n+1][n+1];
memset(b,0,sizeof(b));
int sum=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
for(int k=1;k<=m;k++){
if(sqrt1(abs(a[k].x-i),abs(a[k].y-j))<=r&&b[i][j]==0){
sum++;
break;
}
}
}
}
cout<<sum;
return 0;
}
反对抄袭,人人有责!