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...