poj - 3304
最近開始刷計算幾何了 公式好多完全不會
數學不行 幾何不行 記憶力不行 當機
查的題解 就當複習吧 這套專題拿來熟悉一下計算幾何模板
#include #include#includeusing namespace std;
const double eps = 1e-8;
int sgn(double x)//處理精度
struct point
point(double xx, double yy):x(xx), y(yy){}
point operator -(const point &a) const
double operator ^(const point &a) const
double operator *(const point &a) const
};struct line
line(point ss, point ee):s(ss), e(ee){}
};double xmult(point p0, point p1, point p2)//判斷p0是否在p1-p2直線上
bool seg_line(line a, line b)
double dist(point a, point b)
const int maxn = 110;
line ll[maxn];
bool check(line a, int n)
return true;
}int main()
int flag = 0;
for(int i = 0; i < n; i++)}}
printf("%s\n", flag ? "yes!" : "no!");
}return 0;
}
POJ 3304 Segments(計算幾何)
description 給出n條線段,問是否存在一條直線與這n條線段的任一條都相交 input 第一行一整數t表示用例組數,每組用例首先輸入一整數n表示線段數量,之後n行每行四個實數x1,y1,x2,y2分別表示線段兩端點橫縱座標 output 對於每組用例,如果存在一條直線與這n條線段的任一條都相...
POJ 3304 Segments 簡單幾何
題目大意 給出n條線段,現在問是否存在一條直線,使得所有線段向這條直線的投影存在乙個共同的交點 題目分析 題意有點抽象,需要轉換一下,因為所有的線段向某一條直線的投影存在乙個交點,那麼在那條直線上,從交點位置開始,沿著垂直於直線的方向做另一條直線,會發現這條直線與n條線段都存在乙個交點,也就是都相交...
POJ 3304 Segments 基礎線段交判斷
link 題意 詢問是否存在直線,使得所有線段在其上的投影擁有公共點 思路 如果投影擁有公共區域,那麼從投影的公共區域作垂線,顯然能夠與所有線段相交,那麼題目轉換為詢問是否存在直線與所有線段相交。判斷相交先求叉積再用跨立實驗。列舉每個線段的起始結束點作為直線起點終點遍歷即可。date 2017 07...