UVALive 4650 平面幾何

2021-07-12 07:47:40 字數 993 閱讀 3925

題意:給出n個點,每個點有點權,要畫兩個圓,每個圓圈中某些點(兩個圓圈中

的點不能相交),兩個圓圈中的點求和再相乘求最大值。有個很關鍵的條件是三點不

共線。

相當於一條直線分成兩堆點(兩側),使得兩側和的乘積最大。直接列舉兩個點定下

一條直線,那麼直線上的兩個點有四種情況,同側兩種異側兩種。

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

#define maxn 211

struct point

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

point operator - ( point a )

}p[maxn];

long long w[maxn];

int n;

double cross (point a, point b)

bool left (point p, point a, point b)

int main ()

long long ans = 0;

for (int i = 1; i <= n; i++)

ans = max (ans, (sum1+w[i]+w[j])*sum2);

ans = max (ans, sum1*(sum2+w[i]+w[j]));

ans = max (ans, (sum1+w[i])*(sum2+w[j]));

ans = max (ans, (sum1+w[j])*(sum2+w[i]));}}

printf ("%lld\n", ans);

}return 0;

}

平面幾何基礎

乙個很有資訊量的部落格 向量p1 x1,y1 p2 x2,y2 內積p1 p2 x1x2 y1y2,外積p1 p2 x1y2 x2y1 先利用外積根據是否有 p1 q p2 q 0來判斷點q是否在直線p1 p2上 再利用內積根據是否有 p1 q p2 q 0來判斷點q是否落在p1 p2之間 要求兩直...

平面幾何常用模板

平面幾何常用模板 定義點的類 struct point 定義向量的類 typedef point vector 定義向量的基本運算 vector operator vector a,vector b vector operator vector a,vector b vector operator ...

vijos 1697平面幾何

ac通道 分析 看到這道題目,我最先想到的是bzoj1370,明顯的並查集呀 我們設直線a 為與直線a垂直的直線,而互相平行的直線可以互相合併。若直線a垂直於直線b,則直線a平行於直線b 這樣就可以把垂直轉換為平行。具體實現過程請參考 include include include using na...