1281 山峰和旗子

2021-07-09 13:48:46 字數 661 閱讀 9498

由題意可得:

k(k-1)+3<=n

由公式能準確得出k的範圍。  比較粗的估計就是  k<=floor(sqrt(n))+2

也就是說,k的量級為sqrt(n)量級

首先是輸入與預處理部分,複雜度o(n)

然後,對於每乙個範圍裡的k,都乙個個試過去,可以二分,所以複雜度為log k次,每次為k

所以該過程總複雜度為klogk ,即時間複雜度是o(sqrt(n)*log(sqrt(n))),也就是o(sqrt(n)*log(n)),這部分複雜度優於o(n)。

程式**如下:

#include #include using namespace std;

#define maxsize 51001

int a[maxsize], n, myresult;

void getinput()

else

if (a[i] > a[i-1])

} a[i] = pos;

} a[0] = pos;

}bool can_insert_flag(int dist)

else

}myresult = lower;

}void dooutput()

int main()

1454 山峰和山谷

時間限制 1000 ms 記憶體限制 65536 kb 提交數 93 通過數 28 給定乙個 n n 的網格狀地圖,每個方格 i,j 有乙個高度 wij 如果兩個方格有公共頂點,則它們是相鄰的。定義山峰和山谷如下 均由地圖上的乙個連通塊組成 所有方格高度都相同 周圍的方格 即不屬於山峰或山谷但與山峰...

Flood Fill 山峰和山谷

fgd小朋友特別喜歡爬山,在爬山的時候他就在研究山峰和山谷。為了能夠對旅程有乙個安排,他想知道山峰和山谷的數量。給定乙個地圖,為fgd想要旅行的區域,地圖被分為 n n 的網格,每個格仔 i,j 的高度 w i,j 是給定的。若兩個格仔有公共頂點,那麼它們就是相鄰的格仔,如與 i,j 相鄰的格仔有 ...

山峰和山谷 Flood Fill

fgd小朋友特別喜歡爬山,在爬山的時候他就在研究山峰和山谷。為了能夠對旅程有乙個安排,他想知道山峰和山谷的數量。給定乙個地圖,為fgd想要旅行的區域,地圖被分為 n n 的網格,每個格仔 i,j 的高度 w i,j 是給定的。若兩個格仔有公共頂點,那麼它們就是相鄰的格仔,如與 i,j 相鄰的格仔有 ...