牛客網 geohash編碼

2021-10-05 09:43:21 字數 1036 閱讀 5844

geohash編碼:geohash常用於將二維的經緯度轉換為字串,分為兩步:第一步是經緯度的二進位制編碼,第二步是base32轉碼。

此題考察緯度的二進位制編碼:演算法對緯度[-90, 90]通過二分法進行無限逼近(取決於所需精度,本題精度為6)。注意,本題進行二分法逼近過程中只採用向下取整來進行二分,針對二分中間值屬於右區間。演算法舉例如下: 針對緯度為80進行二進位制編碼過程:

1) 區間[-90, 90]進行二分為[-90, 0),[0, 90],成為左右區間,可以確定80為右區間,標記為1;

2) 針對上一步的右區間[0, 90]進行二分為[0, 45),[45, 90],可以確定80是右區間,標記為1;

3) 針對[45, 90]進行二分為[45, 67),[67,90],可以確定80為右區間,標記為1;

4) 針對[67,90]進行二分為[67, 78),[78,90],可以確定80為右區間,標記為1;

5) 針對[78, 90]進行二分為[78, 84),[84, 90],可以確定80為左區間,標記為0;

6) 針對[78, 84)進行二分為[78, 81), [81, 84),可以確定80為左區間,標記為0;

輸入描述:

輸入包括乙個整數n,(-90 ≤ n ≤ 90)
輸出描述:

輸出二進位制編碼
輸入例子1:

80
輸出例子1:

111100
直接將兩邊的標誌位l和h的值分別初始位-90和90;

然後進行二分查詢就行了

#includeusing namespace std;

int main()

else

if(int(result.length())== 6)

break;

}cout<}

return 0;

}

geohash編碼 騰訊

geohash編碼 geohash常用於將二維的經緯度轉換為字串,分為兩步 第一步是經緯度的二進位制編碼,第二步是base32轉碼。此題考察緯度的二進位制編碼 演算法對緯度 90,90 通過二分法進行無限逼近 取決於所需精度,本題精度為6 注意,本題進行二分法逼近過程中只採用向下取整來進行二分,針對...

牛客網 華為機試 020 牛客網

密碼要求 1.長度超過8位 2.包括大小寫字母.數字.其它符號,以上四種至少三種 3.不能有相同長度超2的子串重複 說明 長度超過2的子串 一組或多組長度超過2的子符串。每組佔一行 如果符合要求輸出 ok,否則輸出ng 示例1 021abc9000 021abc9abc1 021abc9000 02...

牛客網 乳酪

題目很簡單,中文題。複製了 乳酪之間距離不用管,只要開個並查集維護就好了,另外需要選好幾個點作為起點幾個點作為終點。o n 2 的建圖。感覺可以平面掃瞄。有空去試試。以下 ac includeusing namespace std const int maxn 1e5 5 define ll lon...