解題思路:
講真,這題資料有點水,要是只給乙個凹四邊形就gg了。
所以我們假設求出來的是個凸包……。
考慮o(n2
)列舉對角線,那麼就是求以對角線為底上下兩個最大的三角形,可以採用旋轉卡殼的思想來做,注意到隨著對角線轉動,最優頂點也在同向轉動,所以直接跳指標即可。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int n=2005;
const
double eps=1e-8;
struct point
point(double _x,double _y):
x(_x),y(_y){}
inline
friend point operator - (const point &a,const point &b)
inline
friend
double
operator * (const point &a,const point &b)
inline
double dis()
}p[n],stk[n];
int n,top;
inline
bool cmp(const point &a,const point &b)
void graham()
top++;
}void solve()
}ans*=0.5;
printf("%.3f",ans);
}int main()
BZOJ 1069 最大土地面積
給出平面上的一些點,找出四個點使這四個點圍成的面積最大。首先這四個點肯定在凸包上 顯然。所以求出凸包後 n 地列舉乙個點,之後利用旋轉卡殼求出與這個點相距最遠的點,然後列舉所有點找出兩邊三角形的最大面積取最大即可。這題主要是板子吧,背會就好背會就好 include include include i...
bzoj 1069 最大土地面積
題目大意 一些點,選四個點使這圍成的四邊形面積最大 思路 首先可以知道這些點一定在凸包上,然後graham求一下凸包 然後我們可以列舉對角線在兩邊找最遠的點 然而這樣複雜度爆了 所以我們可以利用旋轉卡殼的思想 列舉對角線的時候確定乙個點,然後旋轉另乙個點,如果確定了另外兩個點,則另外兩個點也一起轉 ...
bzoj1069 最大土地面積
在某塊平面土地上有n個點,你可以選擇其中的任意四個點,將這片土地圍起來,當然,你希望這四個點圍成 的多邊形面積最大。第1行乙個正整數n,接下來n行,每行2個數x,y,表示該點的橫座標和縱座標。最大的多邊形面積,答案精確到小數點後3位。50 0 1 01 1 0 10.5 0.5 1.000 資料範圍...