LA 4413 梅涅勞斯定理

2021-07-10 07:14:42 字數 908 閱讀 3400

#include using namespace std;

struct point

};typedef point vector;

typedef vectorpolygon;

vector operator +(vector a, vector b)//

vector operator -(point a, point b)//

vector operator *(vector a, double p)//

vector operator /(vector a, double p)//

bool operator <(const point &a, const point &b)//

const double eps = 1e-10;

int dcmp(double x)//

bool operator ==(const point &a, const point &b)//

double dot(vector a, vector b)//

double length(vector a)//

int t;

point p, q, r;

double m1, m2, m3, n1, n2, n3;

int main(int argc, char const *argv)

return 0;

}

梅涅勞斯定理應該這樣記: 分為主三角形abc和次三角形def,沿著ab,bc,ca的順序走,中間經過次要三角形的頂點,這樣就好記啦。

(af/fb)*(bd/bc)*(ce/ea) = 1;

題圖中有三個交叉的三角形,也就是有6個關係。由此我們可以推出所有邊的比例,結合已知的三條邊,就可以算出所有長度,通過移動向量,算出abc點。

LA2955 Vivian難題 梅森素數

輸入 k 1 leq k leq 100 個正整數 p 1,p 2,p k 1 p i 2 找出 k 個非負整數 e i 使得 n prod k 為 2 x x 為正整數。注意,由於 x 0 e i 不能全為0.如果無解輸出no,否則輸出最大的 x 梅森數 2 p 1 指數 p 是素數。常記為 mp...