1 条题解

  • 1
    @ 2022-8-30 10:08:07
    #include<bits/stdc++.h>
      using namespace std;
      int n,m,ans;
      struct node{
          char op;
          double a,b,c,d;
      }a[505];//储存所有的图形
      double x,y;
      double len(double x1,double y1,double x2,double y2){return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));}//求距离
      int main()
      {
          scanf("%d%d\n",&n,&m);
          for(int i=1;i<=n;i++){
              scanf("%c%lf%lf%lf",&a[i].op,&a[i].a,&a[i].b,&a[i].c);
              if(a[i].op=='r')scanf("%lf",&a[i].d);
              scanf("\n");
          }
          for(int i=1;i<=m;i++){
              scanf("%lf%lf",&x,&y);
              ans=0;
              for(int j=1;j<=n;j++){
                  if(a[j].op=='r'){
                      if(min(a[j].a,a[j].c)<x&&x<max(a[j].a,a[j].c)&&min(a[j].b,a[j].d)<y&&y<max(a[j].b,a[j].d))ans++;
                  }
                  else{
                      if(len(x,y,a[j].a,a[j].b)<a[j].c)ans++;
                  }
              }//暴力
              printf("%d\n",ans);
          }
          return 0;
      }
    
    • 1

    信息

    ID
    1264
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    2
    已通过
    1
    上传者