8 17比賽總結

2021-07-16 20:32:08 字數 1538 閱讀 1165

這次比賽考得一般般,這回的題是前段時間學的圖論演算法的測試題:100+52.2+40+12.5。

【1】位圖:

這題是很簡單的圖論,用bfs

加優化簡單

o(nm)

過了。

正解:這題將所有更新的點記錄在乙個佇列裡(初始的時候都是1

的看為更新的),然後每次將這些點往四周擴散,如果可以擴散,那麼

ans[x,y]:=min(ans[x,y],ans[i,j]+1)

,再將可以更新的點再記錄在乙個新的佇列裡,再做擴散,同上面一樣,直至不可更新那麼答案就出來了(僅供參考,不喜勿噴)。

【2】外星人入侵:

這題在考試的時候用記憶體肯定爆的方法用spfa

做,拿了

52.2

分(但是答案錯誤了),雖然不知道**錯了,後來在同學的講解後用記憶體優化的方法

spfa

做對了。

正解:這題用在課上講過的方法來優化記憶體,用next[i]

來儲存第i

個邊同屬

a[i,1]

這個起點的上一條邊j,用

last[i]

來儲存a[i,1]

這個起點的最後一條邊,然後再

next

。由於最多

m*2(1<=m<=100000)

條邊(因為每條邊要複製另乙個方向的邊),所以用上面的方法來優化

spfa

的記憶體就可以了。

【3】無線通訊網:

這題剛看的時候就發現這是乙個加了最後的貪心的最小生成樹,果斷用kruskal

演算法,不過由於

geifather

偷了個懶,並且後面的貪心也錯了,所以自信滿滿的只對了兩個點(這題資料水,才五個點)。

正解:用kruskal

演算法,將所有邊排序並計算答案(詳細看

psacal

書上)。不過這裡要注意的是,最後的答案只用計算到第

n-1-s

個點就可以結束了,然後輸出列舉的

sum[k]

(這是因為只有

s個衛星**)。

【4】砍樹:

這題考試的時候不太懂,於是水了乙個樣例和『none

』,結果水的樣例對了乙個點,出奇地拿了乙個

12.5分。

正解:這題用遞迴來進行一次全部的遍歷,算出其的子節點個數,統一從1

開始,所以樣例的節點個數如下:

i  1  2  3  4  5  6  7  8  9  10

f 10  9  8  3  1  1  2  5  2  1

所以答案看下面的布林表示式成不成立,如果可以的話就輸出吧。

(n-f[k]<=n div 2)and(n-f[i]<=n div 2)and(n-f[i]<=n div 2)......

k為當前節點序號,

i為與其連通的所有沒有走過的點的列舉,注意,

f[i]

在下乙個遞迴返回了值再判斷。

這次比賽考驗了我對這兩天學的圖論演算法的了解和實現,我也通過這次考試更加堅實了我對圖論演算法的理解,但仍還要多多消化,加油!

2015 8 15比賽總結

在總結之前,我必須膜拜一下某個切完提高組來省賽組虐場的犇。今天的比賽,失策還是有的,今天的問題如下 打 不小心,打錯了乙個小細節,導致最終答案錯誤。有的題目a了樣例我就以為可以了,或者是打的對拍也錯了 打題前沒有想清楚,最後對拍時才發現錯誤。第一題 這是道二分的題目,我在做比賽時就想到了正解,就是用...

8 18 比賽總結

這次比賽很不錯,排名第一 100 100 0 100 300。1 跳格仔 這題在比賽的時候做就很淼,直接dp 就可以了。正解 dp。2 2048 這題是一道純模擬題,只需要模擬2048 執行的步驟來進行迴圈和合併,由於 比較複雜,所以要精細做,考試的時候在除錯一小時後終於將這道題做了出來。正解 同上...

比賽2 總結

t2t3 t4t5總結 給定乙個整數序列a1,a2 判斷是否能將其分為奇數段 每段不為空0 每段具有奇數長度且開始和結束為奇數。includeusing namespace std int main cout yes 輸入整數序列a1,a2 點座標為 i,a i 是否有可能畫出兩條平行且非重疊的線,...