zoukankan      html  css  js  c++  java
  • poj1106

    极角排序扫一圈。

    今天没什么状态写个水题减轻负罪感(大雾)

     1 #include <cstdio>
     2 #include <cmath>
     3 #include <cstring>
     4 #include <algorithm>
     5 #include <vector>
     6 using namespace std;
     7 typedef double db;
     8 const db eps = 1e-6;
     9 const db pi = acos(-1);
    10 int sign(db k){
    11     if (k>eps) return 1; else if (k<-eps) return -1; return 0;
    12 }
    13 int cmp(db k1,db k2){return sign(k1-k2);}
    14 struct point{
    15     db x,y,ang;
    16     point operator + (const point &k1) const{return (point){k1.x+x,k1.y+y};}
    17     point operator - (const point &k1) const{return (point){x-k1.x,y-k1.y};}
    18     point operator * (db k1) const{return (point){x*k1,y*k1};}
    19     point operator / (db k1) const{return (point){x/k1,y/k1};}
    20     int operator == (const point &k1) const{return cmp(x,k1.x)==0&&cmp(y,k1.y)==0;}
    21     db abs(){ return sqrt(x*x+y*y);}
    22     db dis(point k1){return ((*this)-k1).abs();}
    23     db getw(){return atan2(y,x);}
    24 };
    25 struct circle{
    26     point o;db r;
    27     int inside(point k){return cmp(r,o.dis(k))>=0;}
    28 }c;
    29 vector<point> v;
    30 bool cmp2(point a,point b){
    31     return a.ang<b.ang;
    32 }
    33 int n;point t;
    34 int main(){
    35     while (scanf("%lf%lf%lf",&c.o.x,&c.o.y,&c.r)&&c.r>0){
    36     //scanf("%lf%lf%lf",&c.o.x,&c.o.y,&c.r);
    37         scanf("%d",&n);
    38         while (n--){
    39             scanf("%lf%lf",&t.x,&t.y);
    40             if(c.inside(t)){
    41                 t.ang = (c.o-t).getw();
    42                 v.push_back(t);
    43                 v.push_back({t.x,t.y,t.ang+2*pi});
    44             }
    45         }
    46         sort(v.begin(),v.end(),cmp2);
    47         int m = v.size()/2;
    48         int ans = 0;
    49         for(int l=0,r=0;l<m;l++){
    50             while (r<2*m&&v[r].ang-v[l].ang<=pi)
    51                 r++;
    52             ans=max(ans,r-l);
    53         }
    54         printf("%d
    ",ans);
    55         v.clear();
    56     }
    57 }
    View Code
  • 相关阅读:
    codeforces 918C The Monster
    codeforces 916E Jamie and Tree dfs序列化+线段树+LCA
    FFT模板——copied from hzwer
    codeforces 899F Letters Removing set+树状数组
    Codeforces 1073GYet Another LCP Problem SA
    Codeforces 1109E Sasha and a Very Easy Test 线段树
    Codeforces 1207G Indie Album AC自动机
    HDU
    Codeforces 487E 圆方树 + 树链剖分
    Codeforces 1238G Adilbek and the Watering System 贪心
  • 原文地址:https://www.cnblogs.com/MXang/p/10597596.html
Copyright © 2011-2022 走看看