Logo 阿兹卡班的小天狼星的博客

博客

cover

2023-04-15 13:07:59 By 阿兹卡班的小天狼星

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;
}

反对抄袭,人人有责!

评论

暂无评论

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。