LA 4064 極角排序

2021-07-14 11:20:23 字數 868 閱讀 7861

題意:

給定平面上n(3<=n<=1200)個無三點共線的點,問這些點組成了多少個銳角或直角三角形;

思路:任意三點可組成乙個三角形,c(n,3);減去鈍角三角形的個數就是銳角或直角三角形的個數了;

計算鈍角三角行的個數時列舉每個點,以這個點為原點,極角排序後計算角度在(pi/2,pi)的個數,最後一減就是答案了;

ac**:

//#include #include #include #include #include #include #include #include #include using namespace std;

#define riep(n) for(int i=1;i<=n;i++)

#define riop(n) for(int i=0;ivoid read(t&num)

int stk[70], tp;

templateinline void print(t p)

while(p) stk[++ tp] = p%10, p/=10;

while(tp) putchar(stk[tp--] + '0');

putchar('\n');

}const ll mod=1e9+7;

const double pi=acos(-1.0);

const ll inf=1e18;

const int n=1203;

const int maxn=1005;

const double eps=1e-10;

double x[n],y[n],temp[2*n];

ll n;

ll cal(ll x,ll y)

{ ll ans=1;

for(int i=0;i

極角排序詳解

極角排序詳解 名詞釋義 在平面內取乙個定點o,叫極點,引一條射線ox,叫做極軸,再選定乙個長度單位和角度的正方向 通常取逆時針方向 對於平面內任何一點m,用 表示線段om的長度 有時也用r表示 表示從ox到om的角度,叫做點m的極徑,叫做點m的極角,有序數對 就叫點m的極座標 四種極角排序 詳解 s...

極角排序理解

這裡我們說的極角排序,指的是對於二維座標中的點,當然也可以說是向量。極角排序的用途一般是預處理二維平面中的點,使之變得相對有序,接下來在有序的條件小用o n 或者o nlogn 處理,而不是無序條件下的o n n 的列舉。應用鏈結 關於叉積 叉積 0是指兩向量平行 重合 叉積 0,則向量a在向量b的...

極角排序 凸包

我的心願是世界和平!方便而且好理解,建議使用。以p 0 為原點。int cmp point a,point b sort p 1,p m,cmp 以p 0 為原點。int cmp point a,point b sort p 1,p m,cmp 以 0,0 為原點。int quadrant poin...