一開始看這道題目,也不是很會,誰會把統計之類的問題和bfs聯絡在一起,沒有開始的狀態,沒有結束的狀態,題目中連乙個最短之類的詞也沒有出現。
然後統計嘛,題目中說了方格高度都相同,就把周圍的點都看一遍和這個點高度相同的就入隊,把高度相同的點都打上瀏覽的標記。看的過程中,既有比它小的,也有比它大的,那麼這種高度的點就不是我們要統計的答案,只有比它小的,或只有比它大的,那麼就是我們要統計的。可以設定兩個標記,標記看的過程中有沒有比它小的,比它大的。
然後就是只有乙個高度的時候,因為兩個標記都不滿足,那麼都加1。
然後就是這種題目感覺dfs和bfs都可以做,好像還有一種洪氾法的方法也可以解決。
然後就是抱怨一下bfs有套路,比起dfs要簡單,dfs寫起來容易,但是怎麼表示每一層的狀態就比較難,再加上剪枝之類的,qwq······
#include #include #include int n;
int mp[1005][1005], vis[1005][1005], obs[1005][1005];
int dirx = ;
int diry = ;
struct node tmp, cur;
std::queueq;
int lows, highs;
inline int read()
bool valid(int x, int y)
void bfs(int x, int y)
}} }
if (!low) lows++;
if (!high) highs++;
}int main()
} for (int i = 1; i <= n; ++i)
} printf("%d %d", highs, lows);
return 0;
}
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 相鄰的格仔有 ...