BZOJ 2618 Cqoi2006 凸多邊形

2021-07-25 23:38:00 字數 999 閱讀 7590

真●半平面交,半平面交模板題,按照題目描述將每個多邊形拆分成n個向量,我們規定向量的左側為其指定的區域,參照了po姐的寫法,因為雙端佇列實在是不好搞,我們先在乙個方向加線,然後再在最後刪隊首隊尾,值得注意的是用向量求交點和用向量判斷乙個點是否在這條向量的左面。

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

struct point

point(double _,double __):x(_),y(__){}

point operator + (point b)

point operator - (point b)

double

operator * (point b)

point operator * (double rate)

}pp[1000];

struct line

point operator ^ (line b)

}lines[1000000];

int tot;

bool onleft(point p,line l)

line dui[1000000];

int top=1,my_final=1;

void get_half_plane_intersection()

while(1)

}int main()

lines[++tot]=line(pp[m],pp[1]);

}get_half_plane_intersection();

if(my_final-top<=2) printf("0.000\n");

else

return

0;}

2618 Cqoi2006 凸多邊形

逆時針給出 n個凸多邊形的頂點座標,求它們交的面積。例如n 2時,兩個凸多邊形如下圖 則相交部分的面積為5.233。第一行有乙個整數n,表示凸多邊形的個數,以下依次描述各個多邊形。第i個多邊形的第一行包含乙個整數mi 表示多邊形的邊數,以下mi 行每行兩個整數,逆時針給出各個頂點的座標。輸出檔案僅包...

BZOJ2618 半平面交)

逆時針給出n個凸多邊形的頂點座標,求它們交的面積。給你n個凸多邊形,求多邊形的交的面積 給你一堆邊,讓你求半平面交的面積 半平面交模板 定義點 struct tpoint 定義線 一點 一方向 struct tline 1.定義半平面為向量的左側 逆時針給出,只需要後乙個減前乙個是方向 2.將所有向...

bzoj 2618 半平面交模板 學習筆記

給你n個凸多邊形,求多邊形的交的面積 題意 給你一堆邊,讓你求半平面交的面積 半平面交模板 1.定義半平面為向量的左側 2.將所有向量的起點放到乙個中心,以中心參照進行逆時針極角排序 但是直接按叉積排序會轉圈圈 於是我們從 x 軸負半軸開始逆時針旋轉,將座標軸分為上下兩部 x 軸屬於下部 當兩個向量...