HDU 3775 幾何 Pick定理 好題

2021-06-17 21:47:30 字數 1125 閱讀 4499

pick定理,

pick 定理是這樣的, 

s=a+ b/2 - 1

,其中s是圖形面積, a 是圖形內部格點數, b 是邊經過的格點數,適用範圍是:頂點座標均是整點,或者說頂點在格點上的簡單多邊形。

面積怎麼求?三角形的叉乘。

這題很讓人鬱悶的是,圖中的頂點並不是用

pick定理求出的頂點,而還要再加上外面那一圈,也就是還要加上 b

//sum為內部的有向面積的兩倍

//外部的是n/2+1!!!可以證明

圖中橙色的圖形表示的是用pick 定理求出的面積,所以還要再加上外面這一圈才是答案。

**如下:

#include#include#include#include#include#include#include#include#include#include#include#include#define tree int o,int l,int r

#define lson o<<1,l,mid

#define rson o<<1|1,mid+1,r

#define lo o<<1

#define ro o<<1|1

#define ull unsigned long long

#define ll long long

#define ui unsigned int

#define inf 0x7fffffff

#define eps 1e-7

#define m 9901

#define n 1000009

using namespace std;

int t,n,m,k,t,maxv;

int dx[8]= ;

int dy[8]= ;

char str[n];

int main()

//sum為內部的有向面積的兩倍

//外部的是n/2+1!!!可以證明

printf("%i64d\n",(abs(sum)+n)/2+1);

}return 0;

}

幾何模擬 hdu 3286

暴力不解釋 include include include include include include include include include include include include include include includeusing namespace std defin...

hdu 3629 計算幾何

這道題想了很久都沒想出來什麼高效一點的方法,所以就在網上膜拜了大牛的思路。主要思想就是去掉點對之間的凸包,因為凸包一定是乙個三角形中包含乙個點,那我們就可以對於每個點判斷有多少個三角形能把它包含在內 判斷可以用逆向思維,就是所有三角形的個數減去有多少個三角形不能把它包含在內,然後通過極角排序來求出不...

HDU 5531 幾何公式

include include include include using namespace std const int maxn 1e4 5 const double inf 1e20 const double pi acos 1 const double eps 1e 8 struct poi...