《演算法藝術與資訊學競賽》之 堆 積水

2021-08-14 06:42:11 字數 392 閱讀 6857

前幾天機房斷網沒時間更新。這地道歉順便祝大家新年快樂。

非常遺憾,這道題在網上沒有找到,題目較為簡單所以我直接說思路了。

題目大意是給定乙個平面,每乙個點都有乙個高度,一場雨後,問那些格仔有積水,並求出總的積水量。(邊界上的格仔是不會積水的)

這道題非常的基礎,有些地方想清楚就非常簡單了,根據生活常識,我們知道乙個地方有積水當且僅當其四周都比它高時才有可能。我們首先將所有邊界上的格仔都加入乙個小根堆中,每次取出高度最低的乙個格仔進行拓展,將其四周的格仔都掃一遍,如果掃到比它高的顯然不可能積水,則入堆,找到矮的則很簡單的看其周圍的高度是否比他高。這既是我所謂的floodfill法(這看起來其實和bfs沒有什麼實質性的區別)

具體實現時我想應該需要乙個h陣列首先存放正無窮,然後每次更新其值會比較方便。

《演算法藝術與資訊學競賽》之 並查集 團夥

題目描述 在某城市裡住著n個人,任何兩個認識的人不是朋友就是敵人,而且滿足 1 我朋友的朋友是我的朋友 2 我敵人的敵人是我的朋友 所有是朋友的人組成乙個團夥。告訴你關於這n個人的m條資訊,即某兩個人是朋友,或者某兩個人是敵人,請你編寫乙個程式,計算出這個城市最多可能有多少個團夥?輸入 第1行為n和...

《演算法藝術與資訊學競賽》之 堆 可憐的奶牛

這道題網上沒有找到,暫時之說說思路。題目大意是 有n頭奶牛 n 100 000 每只奶牛每天都有乙個產奶量。每只牛的產奶量呈現出週期性變化,每只牛週期都不超過10,每天產奶量不會超過200 每天產奶量最低的一直奶牛將會被殺了吃肉,但是如果產奶量最少的有多隻,那麼就不會有奶牛被殺。需要求的是最後有多少...

割點和橋演算法 摘自《演算法藝術與資訊學競賽》

最近在做圓桌騎士的問題,在乙個無向圖中求出雙連通分量,判斷各雙連通分量中是否含有奇圈,求出不能構成奇圈的節點的個數。思路大概明確了,但是寫的時候老是出現問題,所以專題又看了一下雙連通分量的演算法,看來看去,還是劉汝佳的最經典,索性直接手打出來,方便以後再看 void dfs 節點編號k,k的父親節點...