#include#define eps (1e-10)
using namespace std;
class point
point operator + (point p)
point operator - (point p)
point operator * (double a)
point operator / (double a)
double norm()
double abs() //倆點間的距離
};struct segment
segment(point _p1,point _p2):p1(_p1),p2(_p2){}
};double dot(point a,point b)//求內積 就是向量a*b
//外積的值為a與b向量構成的平行四邊形面積的值
double cross(point a,point b)//求外積
//判斷是否正交 向量內積:a*b=|a||b|*cos(y) 當cos為0時正交(90,-90垂直)
//a*b=a.x*b.x+a.y*b.y;
bool solve1(point a,point b)//是否正交
bool intersect(point p1,point p2,point p3,point p4)//判斷是否相交 通過ccw來判斷
/*點a與點b之間的距離等於向量a-b或b-a的絕對值。
*/ double getdis(point a,point b)//求倆點間的距離 /*
設直線p1 p2上的向量為a=p2-p1,p與p1構成的向量b=p-p1
則點p與直線p1p2的距離d就等於a,b構成的平行四邊形的高
用a與b外積的大小(平行四邊形的面積)除以a的大小|a|即可求出高d
d=|a*b|/|a|=|(p2-p1)*(p-p1)|/|p2-p1|;
*///注意:這裡segmet s是不規範的應該是 line s 才對
double getdis_li(segment s,point p)//點與直線的距離
double getdis_sp(segment s,point p)//點與線段的距離
double getdis_ss(segment s1,segment s2)//線段與線段之間的距離
int main()
return 0;
}
挑戰程式設計 CGL 2 A
aoj cgl 2 a 題意 t組資料 每次給出4個點 p1,p2,p3,p4 p1與p2的向量是p 1 p3與p4的向量是p 2 當p 1與p 2平行時輸出2,正交輸出1,其他輸出0 可以用向量的內積和外積做這題 include define eps 1e 10 using namespace s...
挑戰程式設計 CGL 1 A Projection
include define eps 1e 10 using namespace std class point point operator point p point operator point p point operator double a point operator double a...
挑戰程式設計競賽學習筆記2
書中只給出演算法函式,程式所用資料預設已讀入程式並儲存在全域性變數中。以高效演算法為目標,需要正確估算各種演算法的複雜度。縮短執行時間,主要應該從複雜度入手。程式都從標準輸入按指定格式讀入資料 輸入資料已經由main函式讀入並儲存在全域性變數中 通過呼叫solve函式來求解 在設計滿足問題要求的演算...