uva5984 簡單計算幾何

2021-07-04 22:24:43 字數 1126 閱讀 5837

題意:

給出n個圖形,三角形、正方形和圓形,問這些圖形覆蓋多少個整數點。

思路:

每讀入乙個圖形,就去計算這個圖形覆蓋了多少個點,用vis來標記哪些點被覆蓋過。

**:

#include#include#include#include#include#include#includeusing namespace std;

#define maxn 500

#define eps 1e-8

struct point

;bool vis[maxn][maxn];

int ans;

int dis(int x1,int y1,int x2,int y2)

void checkc(int x,int y,int r)

return ;

}void checks(int x,int y,int l)

return ;

}double area(point pt0,point pt1,point pt2)

void checkt(const point a,const point b,const point c)

{ int minx=min(min((int)a.x,(int)b.x),(int)c.x);

int miny=min(min((int)a.y,(int)b.y),(int)c.y);

int maxx=max(max((int)a.x,(int)b.x),(int)c.x);

int maxy=max(max((int)a.y,(int)b.y),(int)c.y);

for(int i=minx; i<=maxx; i++)

for(int j=miny; j<=maxy; j++)

if(!vis[i][j])

{point d;

d.x=i*1.0;

d.y=j*1.0;

double sabc=area(a,b,c);

double sumsquar=area(a,d,b)+area(b,d,c)+area(a,d,c);

if(fabs(sabc-sumsquar)

uva 11178 計算幾何

函式較多,作為模板。include include include using namespace std struct point 定義點的時候直接利用建構函式,很方便 typedef point vector 這裡因為向量都有兩個維度的有序參量 vector operator vector a,...

UVA 11178 計算幾何

題目大意 求乙個三角形中每個內角的角三等分線組成的三角形的三個點的座標 題目解析 沒有演算法可言,直接上模板 ac includeusing namespace std struct point typedef point vector vector operator vector a,vector...

計算幾何專項 UVa 11072

一道純的模板,就是先求乙個凸包,然後再判斷點是否在凸包內。需要注意給定點與凸包頂點重合的情況 樣例裡就有這樣的情況,恩,樣例還是給了提示的 include include include include include using namespace std define m 100010 stru...