HDU 4709 Herding 幾何題解

2021-09-22 08:39:07 字數 632 閱讀 7028

求全部點組成的三角形最小的面積,0除外。

本題就列舉全部能夠組成的三角形,然後儲存最小的就是答案了。由於資料量非常少。

複習一下怎樣求三角形面積。最簡便的方法就是向量叉乘的知識了。

並且是二維向量叉乘p1(ax, ay), p2(bx, by)。公式為:|p1 x p2| = abs(ax*by - ay*bx)

三角形面積就是|p1 x p2| / 2;

本題也是float過不了。換成double就能夠過了。

const int max_n = 101;

struct vertexpoint

vertexpoint operator-(const vertexpoint &n) const };

int n;

vertexpoint p[max_n];

int main()

double area = dbl_max;

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

}} if (area == dbl_max) puts("impossible");

else printf("%.2lf\n", area);

} return 0;

}

BZOJ4709 檸檬(動態規劃,單調棧)

bzoj 從左取和從右取沒有區別,本質上就是要分段。設f i f i 表示前 i i 個位置的最大值。那麼相當於我們列舉乙個前面的位置 j role presentation j j,然後找到這一段中最大的s0 t2s 0t 2但是這樣子很不優秀。我們貪心的思考一下,既然這一段最後加起來只能變成某乙...

bzoj4709 檸檬 單調棧,DP,斜率優化

目錄錯誤 s是值等於a i 的字首和 轉移方程 f i max f i f j 1 a i s i s j 1 s i s j 1 不難寫出暴力方程 by wxyww baoli memset f,0x3f,sizeof f f 0 0 for int i 1 i n i 關於此題的單調性 特性1每...

hdu1285 hdu4857 拓撲排序

一 原題內容 problem description 有n個比賽隊 1 n 500 編號依次為1,2,3,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在裁判委員會不能直接獲得每個隊的比賽成績,只知道每場比賽的結果,即p1贏p2,用p1,p2表示,排名時p1在p2之前。現在...