P1652 圆

原题链接

题解

对于一个圆而言,如果两个点都在其内或其外,那么这个圆是不会经过的
所以穿过的圆是其中一个点在里面,另一个点在外面

code

#include<bits/stdc++.h>
using namespace std;
struct node
{
    int x,y,r;
}circle[105];

int in(int i,int x,int y)
{
    int ox=circle[i].x,oy=circle[i].y,R=circle[i].r;
    return (x-ox)*(x-ox)+(y-oy)*(y-oy)<=R*R;
}
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>circle[i].x;
    }
    for(int i=1;i<=n;i++) cin>>circle[i].y;
    for(int i=1;i<=n;i++) cin>>circle[i].r;

    int x1,y1,x2,y2;
    cin>>x1>>y1>>x2>>y2;

    int ans=0;
    for(int i=1;i<=n;i++)
    {
        if(in(i,x1,y1)+in(i,x2,y2)==1) ans++;
    }

    cout<<ans<<endl;
    return 0;
}

posted @   纯粹的  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示