UVA808(對蜂窩建立座標系)

2021-08-10 22:48:17 字數 861 閱讀 5949

這個題我是通過建立座標系加找規律做出來的,個人感覺難點是建立座標系,所以我將著重講一下座標系是怎麼建立的

建立座標系:

豎線,就會把乙個正六邊形分為四部分如下圖

紅色的點是原點o,標1的是單位長度為1,2則是單位長度為2(原諒我把圖畫的這麼難看)

這就是我們建立的座標系

知道了我們座標系的樣子下面就是實施建造,流程如下

1、以第乙個點作為原點錄入

2、將第二個點也即下一次迴圈的起始點錄入

3、移動,移動方向分別為左上、上、右上、右下、下

4、下一2單位長度到達下乙個迴圈

5、向左下移動直至到達原點正下方

我們解題的規律則是當x大於等於y的差時,值為x,否則值為x + (y - x) / 2

x,y分別代表x軸的差和y軸的差

ac**

#include#includeconst int maxn = 20000 + 10;

const int dir[5][2] = ,,,,};

struct point

point(int x,int y)

}p[maxn]; //點集

//以第乙個點為原點,初始化座標系

void init()

}//抵達下乙個迴圈

y -= 2;

p[cnt++] = point(x,y);

for(int j = 0; j < i; j++)

}}int main()

return 0;

}

最近點對問題 UVa 10245 (分治)

給定平面上的n個點,求距離最近的兩個點的距離。限制條件 1 n 10000 思路 假設我們把所有點按x座標分成了左右兩半,那麼最近點對的距離就是下面二者的最小值 1 2點p和q同屬於左半邊或右半邊時點對 p,q 的距離 2 2點p和q屬於不同區域時點對 p,q 的距離 首先,對於 1 可以通過遞迴計...

題解 UVA1595 對稱軸 Symmetry

本篇題解本來寫於洛谷,但是洛谷的格式審查嚴格 僅本人檢視 故再寫於csdn 1.由於對稱軸垂直於x軸因此每個點的x座標排序去重後按照奇偶數分開討論.2.奇數x座標對稱軸在中間點上.3.偶數x座標對稱軸不在任何點上是乙個浮點值.4.預存每個點的xy座標到set中,方便按照2,3劃分的座標軸情況遍歷每個...