bzoj1038 瞭望塔 半平面交

2021-07-10 05:42:00 字數 604 閱讀 1875

首先對於給定的折線求出可行區域的半平面交,可行區域指所有的點p的集合,滿足點p出發的射線可以在不與折線提前相交的前提下能夠到達折線上的每乙個點。

然後就變成上面乙個折線y1,下面乙個折線y2,求y1-y2的最小值了。一次分段函式的差是分段函式,而顯然一次分段函式的最小值在端點取到。沒了。

ac**如下:

#include#include#include#include#include#define n 1005

using namespace std;

struct pointa[n],b[n];

struct lineq[n],l[n]; int n,cnt;

point operator -(point u,point v)

double crs(point u,point v)

point itr(line x,line y)

double valx(point u,point v,double x)

bool ok(line x,line y,line t)

bool cmp(line x,line y){

return x.k

by lych

2016.3.1

ZJOI 2008 瞭望塔 半平面交

題意 給出乙個以n個點為輪廓的村莊,在村莊任意位置放乙個瞭望塔,使瞭望塔能看到村莊的所有位置,求瞭望塔最低高度。思路 考慮輪廓的每一條邊,要看到這條邊就必須在這條邊以上的乙個半平面內,因此求半平面交即可,樣例圖 不妨將半平面交與地面上的直線看成分段函式,分別為f x 與g x 則所求即為h x f ...

ZJOI2008 瞭望塔 半平面交

題意 給出乙個以n個點為輪廓的村莊,在村莊任意位置放乙個瞭望塔,使瞭望塔能看到村莊的所有位置,求瞭望塔最低高度。只我們發現只有這個點在每個直線所在半平面以上的時候才能看到,如樣例圖 還注意到,只有在原圖的端點或半平面交的端點處才會更新答案。include include include includ...

P2600 ZJOI2008 瞭望塔 半平面交

致力於建設全國示範和諧小村莊的h村村長dadzhi,決定在村中建立乙個瞭望塔,以此加強村中的治安。我們將h村抽象為一維的輪廓。如下圖所示 我們可以用一條山的上方輪廓折線 x1,y1 x2,y2 xn,yn 來描述h村的形狀,這裡x1 x2 xn。瞭望塔可以建造在 x1,xn 間的任意位置,但必須滿足...